Java:InvocationTargetException由MissingResourceException引起,但它在那里

Java:InvocationTargetException由MissingResourceException引起,但它在那里,java,exception,invocationtargetexception,Java,Exception,Invocationtargetexception,当我在我的应用程序上运行一个方法时,我得到了以下异常,但是“JarSignerResources”小姐的类在我的类路径中(tools.jar的一部分)。我以前从未见过这样的异常,它只发生在Linux(而不是OSX)上。有人能给我一点关于为什么会发生这种情况的见解吗?谢谢 Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl

当我在我的应用程序上运行一个方法时,我得到了以下异常,但是“JarSignerResources”小姐的类在我的类路径中(tools.jar的一部分)。我以前从未见过这样的异常,它只发生在Linux(而不是OSX)上。有人能给我一点关于为什么会发生这种情况的见解吗?谢谢

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.ExceptionInInitializerError
    at com.wuntee.aat.smali.SmaliWorkshop.signJar(SmaliWorkshop.java:214)
    at com.wuntee.aat.smali.SmaliController.rebuildAndSignApk(SmaliController.java:223)
    at com.wuntee.aat.view.Gui$13.widgetSelected(Gui.java:354)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
    at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
    at com.wuntee.aat.view.Gui.open(Gui.java:135)
    at com.wuntee.aat.view.Gui$1.run(Gui.java:112)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at com.wuntee.aat.view.Gui.main(Gui.java:108)
    ... 5 more
Caused by: java.util.MissingResourceException: Can't find bundle for base name sun.security.tools.JarSignerResources, locale en_US
    at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1427)
    at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1250)
    at java.util.ResourceBundle.getBundle(ResourceBundle.java:705)
    at com.wuntee.aat.security.tools.JarSigner.<clinit>(JarSigner.java:96)
    ... 17 more

sun.*包不是受支持的公共接口的一部分。很可能您没有在linux上使用sun jdk

直接调用sun.*包的Java程序不保证在所有Java兼容平台上都能工作。事实上,即使在同一平台上的未来版本中,这样的程序也不能保证工作


有关详细信息,请参见

java-version的输出是什么?啊,这很有意义。所以,我想我的下一个问题是,如何以编程方式对jar文件进行签名?如果不使用一些sun,这似乎是不可能的。*软件包。。。我想我得在这个问题上另辟蹊径了。Thank.java版本“1.6.0_24”java(TM)SE运行时环境(构建1.6.0_24-b07)java热点(TM)客户端虚拟机(构建19.1-b02,混合模式,共享)
public static void signJar(String keystore, String keystorePassword, String jarFile, String alias) throws Exception{
    JarSigner js = new JarSigner();
    js.signJar(keystore, keystorePassword, jarFile, alias);
}