非アプレットのJavaコードでうまく機能するメソッドを使用してファイルのリストを取得しようとしています。JavaアプレットのJAR内のファイルのリストを取得する
私はそれが乱雑であることを完全に承知しています。私はこれを学校の仕事のために働かせようとしています。 (私はJavaのファンではありません)
CodeSource src = MemoryButtonHelper.class.getProtectionDomain().getCodeSource();
if (src == null) {
throw new Exception();
}
URL jar = src.getLocation();
System.out.println("Loading from " + jar);
JarFile zf=new JarFile(jar.toString()); //jar.openStream());
final Enumeration<JarEntry> entries = zf.entries();
while (entries.hasMoreElements()) {
final JarEntry ze = entries.nextElement();
if(ze.getName().endsWith(".jpg") || ze.getName().endsWith(".png"))
{
System.out.println("Adding " + ze.getName());
slikeList.add(ze.getName());
}
}
zf.close();
残念ながら、セキュリティの例外が発生しています。
java.security.AccessControlException: access denied (java.lang.RuntimePermission getProtectionDomain)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
at java.security.AccessController.checkPermission(AccessController.java:546)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
at java.lang.Class.getProtectionDomain(Class.java:2106)
at hr.tvz.programiranje.java.deseti.helpers.MemoryButtonHelper.getSlike(MemoryButtonHelper.java:75)
… ad nauseam …
Java Consoleによると、println("Loading from " + jar)
の前に例外が発生しているようです。
これは、JARファイルからイメージのリストを取得する必要があると具体的に言われるボーナスポイントの割り当てです。これがアプレットとの最初の出会いであるので、私は画像のリストを取得するために私が何ができるのかよくわかりません。
'getProtectionDomain()。getCodeSource()' 1.5または1.6より前の時代のセキュリティアップデートは、アプレットとJWSアプリケーションの両方でJarの場所としてJarの元のソースを提供します。 (信頼できるものでさえ)。または、より短いバージョン。それは動作しません。 –