Java получить ресурс InvalidJarIndexException - PullRequest
1 голос
/ 28 сентября 2011

У меня есть имена классов test.java и другой файл "log4j.properties" в той же папке, но после вызова

getClass().getResource("log4j.properties")

происходит сбой с

ms
Trace:
sun.misc.InvalidJarIndexException: Invalid index
    at sun.misc.URLClassPath$JarLoader.getResource(Unknown Source)
    at sun.misc.URLClassPath$JarLoader.getResource(Unknown Source)
    at sun.misc.URLClassPath$JarLoader.findResource(Unknown Source)
    at sun.misc.URLClassPath.findResource(Unknown Source)
    at java.net.URLClassLoader$2.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findResource(Unknown Source)
    at java.lang.ClassLoader.getResource(Unknown Source)
    at java.lang.ClassLoader.getResource(Unknown Source)
    at java.lang.Class.getResource(Unknown Source)

Но getClass ().getClassLoader (). getResource ("log4j.properties") работает.В чем может быть причина?

1 Ответ

1 голос
/ 28 сентября 2011

Обычно InvalidJarIndexException вызывается поврежденным файлом INDEX.LIST в JAR.Поэтому проверьте JAR на наличие проблем.См. http://littletechsecrets.wordpress.com/2008/12/01/why-does-invalidjarindexexception-occur/

Различные результаты, которые вы описываете, вероятно, связаны с Class.getResource() разрешением пути относительно пакета классов и ClassLoader.getResource() разрешением пути относительно корня.Так что getClass().getResource("/log4j.properties") может решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...