找不到运行jar的主类

时间:2013-07-02 14:50:26

标签: java class classnotfoundexception

我使用NetBeans的教程在java中创建了一个程序,它在Windows中运行良好。但是,当我尝试在Linux(RedHat)中运行相同的.jar时,我得到以下异常:

Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE003 bad major version; class=my/numberaddition/NumberAdditionUI, offset=6

从运行此命令:

java -jar NumberAddition.jar

输出结束于:

Could not find the main class: my.numberaddition.NumberAdditionUI. Program will exit.

可以找到此示例的源代码here。 我错过了什么?

编辑:我是否需要为操作系统之间的可移植性添加一些东西?

编辑,回答:感谢留下可能重复链接的评论者。通过这些和一些进一步的研究,我能够确定Linux环境中的JRE是旧版本(1.6),而不是我最初编译该程序的版本(1.7)。

2 个答案:

答案 0 :(得分:2)

在RedHat框中检查您的Java版本。

java -version

您看到的异常与尝试运行已使用更高版本的JDK编译的字节码的JVM有关。

在RedHat上更新Java版本,方法是从Oracle下载或使用yum获取适合您编译的JDK版本。

或者在RedHat上重建您的软件;)如果您的代码不依赖于更高版本的语言增强功能。

答案 1 :(得分:0)

  

从运行此命令:

     

java -jar NumberAddition.jar

     

输出结束于:

     

无法找到主要类:my.numberaddition.NumberAdditionUI。   程序将退出。

在使用java -jar执行jar时,需要在清单文件中提及主类,或者应该指定主类的完整路径将jar文件放在类路径中

例如:如果my.numberaddition.MainClass是你的主要类...... 以

运行
  

java -cp NumberAddition.jar my.numberaddition.MainClass