Я пытаюсь получить список файлов, используя метод, который, очевидно, хорошо работает с не апплетным кодом Java.
Я полностью осознаю, что это грязно; Я просто пытаюсь заставить это работать для школьного задания. (Я не фанат 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. Так как это мое первое знакомство с апплетами, я не уверен, что могу сделать, чтобы получить список изображений.