Инструменты.jar существует, но не может найти sun.security.tools.JarSignerResources

#java #exception

#java #исключение

Вопрос:

Я вижу следующее исключение (при установке Linux Java6-sun, но не на OSX)

 Caused by: java.util.MissingResourceException: Can't find bundle for base name sun.security.tools.JarSignerResources, locale en_US
 at java.util.ResourceBundle.throwMissingResourceException(Unknown Source)
 at java.util.ResourceBundle.getBundleImpl(Unknown Source)
 at java.util.ResourceBundle.getBundle(Unknown Source)
 at com.wuntee.aat.security.tools.JarSigner.<clinit>(JarSigner.java:96)
 ... 12 more
  

но я вижу, что инструменты.jar существует в каталоге установки java, и это инструменты.jar содержит класс JarSignerResource . Есть идеи?

Комментарии:

1. Это инструменты. jar в пути к классу? Я думаю, это не так.

2. это часть базовой установки java… /usr/lib/jvm/java-6-sun/lib/tools.jar

3. Это часть установки JDK (потому что она используется javac и другими инструментами разработки), но это не значит, что это путь к классу каждого приложения Java. Кстати, этого нет в базовой установке JRE .

4. запуск jar через ‘java -classpath .:/usr/lib/jvm/java-6-sun/lib/tools.jar -банка myjar.jar «вызывает ту же проблему…

5. Вы не можете использовать -jar и -classpath одновременно. Используйте ‘java -classpath .:/usr/lib/jvm/java-6-sun/lib/tools.jar:myjar.jar com.wuntee.aat.security.инструменты. JarSigner (предполагается, что JarSigner является основным классом вашего приложения)

Ответ №1:

Проблема не связана с невозможностью найти jar. Проблема связана с тем, что вместо этого в jar не найден какой-либо ресурс для локали en_US. Могут произойти две вещи:

  1. если вы откроете инструменты.файл jar и проверьте содержимое sun security tools, вы обнаружите, что у одного из них нет ресурса JarSignerResources_en_US.class , или
  2. проверьте местоположение по умолчанию для двух разных используемых вами ОС: одна из них должна быть en_US, а другая — нет. Это наиболее вероятно.