我尝试在 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 或更高版本,则需要执行的步骤
创建符号链接(symbolic link)-
ln -s/usr/local/java/usr/local/jdk1.6.0_10
完成后,将以下内容添加到您的
.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/