【问题标题】:.jar works in Windows but not Linux (stacktrace).jar 适用于 Windows 但不适用于 Linux (stacktrace)
【发布时间】:2011-10-27 08:41:29
【问题描述】:

这是我得到的:

[user@localhost KioskMenu]$ java -jar ./kioskmenu.jar 
Exception in thread "main" java.lang.ClassFormatError: KioskMenu (unrecognized class file version)
   at java.lang.VMClassLoader.defineClass(libgcj.so.7rh)
   at java.lang.ClassLoader.defineClass(libgcj.so.7rh)
   at java.security.SecureClassLoader.defineClass(libgcj.so.7rh)
   at java.net.URLClassLoader.findClass(libgcj.so.7rh)
   at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at gnu.java.lang.MainThread.run(libgcj.so.7rh)
[user@localhost KioskMenu]$ 

我唯一注意到的是我的 RHEL 使用的是“免费”版本的 Java。但这应该没关系吧?

【问题讨论】:

  • 我粘贴了错误的代码块。我编辑了我的问题。
  • 您使用了哪个 Java 编译器,包括版本号?另外,你能包括java -version的输出吗?
  • 命令jar -tvf kioskmenu.jar 是否列出了正确的类?你是如何在 linux 上获取 jar 文件的? (如果是ftp,是否指定了二进制传输方式?)

标签: java linux jar rhel


【解决方案1】:

您使用的 Java 版本比 Linux 机器上的版本更新。

【讨论】:

  • 你说得对,我使用 1.6 编译并尝试使用 1.4 运行。将在 4 分钟内接受。
【解决方案2】:

你真的应该这样做:

java -jar ./kioskmenu.jar

注意-

如果您只提供java jar ./kioskmenu.jar,JVM 会尝试查找名为jar 的类并尝试将./kioskmenu.jar 作为参数传递给它——这显然不是您想要的。

【讨论】:

    猜你喜欢
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 2021-05-02
    • 2017-06-14
    • 2011-06-15
    相关资源
    最近更新 更多