Java jar 文件未在 Linux 终端中运行

标签 java linux jar netbeans-7

我尝试在 Linux 上的终端中运行 .jar 文件,但出现错误:

[root@localhost dist]# java -jar helloworld.jar
Exception in thread "main" java.lang.ClassFormatError: 
   helloworld.Helloworld (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).

我检查了我的版本,它是:

[root@localhost /]# java --version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-51)

是什么原因导致此错误以及如何修复它?

最佳答案

尝试执行以下操作 -

第一步:

sudo update-java-alternatives -l

这可以确保您正确安装了 JDK6。它应该显示类似这样的内容 -

java-6-sun 63 /usr/lib/jvm/java-6-sun

第二步:

sudo update-java-alternatives -s java-6-sun

这样默认情况下就会使用 javac 和 java v6。

更新:

在终端上输入以下内容 -

javac -version

如果输出为 javac 1.6.0_10 或更高版本,则您必须执行以下步骤。如果没有得到上述输出,则必须卸载并重新安装 java。

如果显示的版本是 1.6.0_10 或更高版本,则需要执行的步骤

  1. 创建符号链接(symbolic link)-

    ln -s/usr/local/java/usr/local/jdk1.6.0_10

  2. 完成后,将以下内容添加到您的 .bashrc 文件

    导出JAVA_HOME=/usr/local/jdk1.6.0_10 导出 PATH=$JAVA_HOME/bin:$PATH 导出 CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

关于Java jar 文件未在 Linux 终端中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9014992/

相关文章:

java - 所见即所得 gwt/gxt 可以导入图像

c - setuid(0) 和系统失败

c++ - Linux绘制像素缓冲区

java - 如何使用 ant 在类路径中包含多个 jar?

java - exe4j高dpi设置

java - 一种在数组中的两个索引之间交换位置的方法

java - 这个自定义阵列适配器有什么问题?

linux - 文件资源管理器在 Ubuntu Bionic Beaver 上崩溃

java |图书馆内部图书馆包装

java - 如何使用传递给 main 方法的参数从 php 调用可执行 jar