【问题标题】:Invalid jar file无效的 jar 文件
【发布时间】:2014-03-16 13:30:55
【问题描述】:

我创建了一个要通过 Web 启动部署的 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 会导致问题吗?

【问题讨论】:

标签: java java-web-start


【解决方案1】:

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

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

【讨论】:

  • 我已经做到了(之后很好地制作了exe)我认为这是需要的类,单独的lib,没有被带入导致它的jar。
  • 是否可以在命令行运行jar。如果您不仅发布消息,而且发布整个堆栈跟踪,也许会有所帮助。
  • 添加了堆栈跟踪如何将所需的类添加到输出 jar 文件中?它们在 Eclipse 中的类路径上,但没有进入 jar。
  • JAR 不包含依赖 jar。您需要在 jnlp file 中指定依赖的 jar。作为一种解决方法,您可以扩展依赖的 jar 并将这些类包含在您的 jar 中。 eclipse有一个WebStart Plugin可以帮助你创建JNLP文件。
  • 我不需要单独的插件,我可以通过 Eclipse 菜单完成。我现在拥有 jar 中的所有类,并且它从 cmd 运行而没有错误。尝试通过网络启动获取它时,我仍然收到无效的 jar。虽然 150mb 很大。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-21
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多