Я пытаюсь получить список файлов, используя метод, который, по-видимому, хорошо работает с Java-кодом, отличным от апплета.Получение списка файлов внутри JAR-апплета 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. Поскольку это моя первая встреча с апплетами, я не уверен, что я могу сделать, чтобы получить список изображений.
'getProtectionDomain(). GetCodeSource()' Обновление для системы безопасности в конце 1.5 или в начале 1,6 года. Java теперь предоставляет исходный источник Jar (с сайта) в качестве местоположения Jar для приложений апплетов и JWS , (даже доверенных). Или, более короткая версия. Это не будет работать. –