命令提示符中的Java编译错误:类文件有错误的版本52.0,应为50.0

我创建了一个java库程序,并在另一个java程序中用作.jar文件。 我的IDE是NetBeans。 我通过命令行尝试了相同的概念,我收到以下错误:

类文件有错误的版本52.0,应该是50.0请删除或确保它出现在类路径的正确子目录中。 import Demo1_Lib.Test1; ^

这是我的步骤。

步骤1:在NetBeans IDE中创建以下类库。

package Demo1_Lib; /** * * @author tveluppillai */ public class Test1 { public void print() { System.out.println("hello"); } } 

第2步:在netbeans上创建一个java项目并添加jar文件。 (Test1.jar)并使用类库函数。

  package test2; import Demo1_Lib.Test1; /** * * @author tveluppillai */ public class Test2 { /** * @param args the command line arguments */ public static void main(String args[]) { Test1 obj = new Test1(); obj.print(); } } 

编译很好,当我运行时,它在NetBeans中为我提供了正确的输出

但是,当我使用命令提示符做同样的事情时,我收到了错误。

我使用以下命令编译并运行它。

 javac -cp C:\\Demo_Lib\\Test\\Test1.jar Test2.java 

我收到以下错误:

类文件有错误的版本52.0,应该是50.0请删除或确保它出现在类路径的正确子目录中。 import Demo1_Lib.Test1; ^

我错过了什么?

您正在尝试使用运行时/编译器JRE / JDK 6来运行/引用使用JDK 8编译的类。

命令行使用的Java可能与NetBeans使用的版本不同。

请参阅Java类文件以获取数字的含义列表。

下载JDK8,或者如果您已经拥有它,请将其添加到您的路径并设置JAVA_HOME。

在Unix中:

 export JAVA_HOME=directory export PATH=$PATH:$JAVA_HOME/bin 

在我将JDK8更改为JAVA_HOME后,我能够以下列方式编译并运行代码…

编译:

  javac -cp C:\\Demo_Lib\\Test\\Test1.jar Test2.java 

跑:

  javac -cp C:\\Demo_Lib\\Test\\Test1.jar;**.** Test2.java