无效的jar文件

时间:2014-03-16 13:30:55

标签: java java-web-start

我创建了一个我想通过Web start部署的App Client应用程序。该应用程序在Eclipse中工作,我在ear文件中自行签名了jar文件。当我点击链接下载它时,我收到消息:

java.io.IOException: Invalid jar file

我需要做些什么来清除它?

Exception in thread "main" java.lang.NoClassDefFoundError: com/jme3/app/SimpleApplication
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Caused by: java.lang.ClassNotFoundException: com.jme3.app.SimpleApplication
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 13 more

[编辑更新] 在我使用导出选项包含依赖库之后,jar文件现在在本地运行。我已经对jar文件进行了自签名,但我仍然通过webstart获得了无效的jar文件响应。现在150mb的罐子大小会引起问题吗?

1 个答案:

答案 0 :(得分:1)

当JAR本身实际上不是可执行的JAR时会发生这种情况。一个真正的可执行文件 JAR应该至少有一个带有main()方法的类,并在MANIFEST.MF中引用它。 Eclipse中的重要一点是,您将JAR导出为可运行的JAR文件

请参阅Corrupt jar fileMake a .JAR file using classes, ERROR : invalid or corrupted file