.jar 在 Windows 中有效,但在 Linux 中无效(堆栈跟踪)

发布于 2024-11-29 15:38:09 字数 730 浏览 2 评论 0原文

这就是我得到的结果:

[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。但这应该不重要吧?

This is what I get:

[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]$ 

The only thing I noticed was that my RHEL is using a "free" version of Java. But this shouldn't matter should it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我的影子我的梦 2024-12-06 15:38:09

您使用比 Linux 计算机上的 Java 版本更新的 Java 版本编译了该 jar。

You compiled the jar with a newer version of Java than the one on your Linux machine.

眉黛浅 2024-12-06 15:38:09

您确实应该这样做:

java -jar ./kioskmenu.jar

注意-

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

You should really be doing this:

java -jar ./kioskmenu.jar

Notice the -.

If you just give java jar ./kioskmenu.jar, the JVM is trying to find a class named jar and trying to pass ./kioskmenu.jar as an argument to it - which is clearly not what you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文