Java tools.jar存在,但找不到sun.security.tools.JarSignerResources

Java tools.jar存在,但找不到sun.security.tools.JarSignerResources,java,exception,Java,Exception,我看到以下异常(在Linux Java6 sun安装上,但在OSX上没有) 原因:java.util.MissingResourceException:找不到基本名称sun.security.tools.JarSignerResources的捆绑包,区域设置为en_US 位于java.util.ResourceBundle.throwMissingResourceException(未知源) 位于java.util.ResourceBundle.getBundleImpl(未知源) 位于java

我看到以下异常(在Linux Java6 sun安装上,但在OSX上没有)

原因:java.util.MissingResourceException:找不到基本名称sun.security.tools.JarSignerResources的捆绑包,区域设置为en_US
位于java.util.ResourceBundle.throwMissingResourceException(未知源)
位于java.util.ResourceBundle.getBundleImpl(未知源)
位于java.util.ResourceBundle.getBundle(未知源)
位于com.wuntee.aat.security.tools.JarSigner.(JarSigner.java:96)
... 还有12个

但是,我可以看到tools.jar存在于java安装目录中,tools.jar包含JarSignerResource类。有什么想法吗?

问题与找不到罐子无关。问题在于没有在jar中找到en_US locale的资源。 可能发生两件事:

  • 如果打开tools.jar文件并检查sun\security\tools的内容,您会发现其中一个没有资源JarSignerResources\u en\u US.class,或者
  • 检查您正在使用的两个不同操作系统的默认位置:其中一个应该是en_US,另一个不是。这是最有可能的
    tools.jar是否在类路径中?我猜不是。它是基本java安装的一部分/usr/lib/jvm/java-6-sun/lib/tools.jarIt是JDK安装的一部分(因为javac和其他开发工具使用它),但这并不意味着它是每个java应用程序的类路径。顺便说一句,它不在基本JRE安装中。通过“java-classpath.:/usr/lib/jvm/java-6-sun/lib/tools.jar-jar-myjar.jar”运行jar会导致相同的问题……不能同时使用-jar和-classpath。使用“java-classpath.:/usr/lib/jvm/java-6-sun/lib/tools.jar:myjar.jar com.wuntee.aat.security.tools.JarSigner(假设JarSigner是应用程序的主类)
    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