我创建了一个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; ^
我错过了什么?
答案 0 :(得分:4)
您正在尝试使用运行时/编译器JRE / JDK 6来运行/引用使用JDK 8编译的类。
命令行使用的Java可能与NetBeans使用的版本不同。
请参阅Java class file以获取数字的含义列表。
下载JDK8,或者如果您已经拥有它,请将其添加到您的路径并设置JAVA_HOME。
在Unix中:
export JAVA_HOME=directory
export PATH=$PATH:$JAVA_HOME/bin
答案 1 :(得分:0)
将JDK8更改为JAVA_HOME之后,我能够编译以下方式并运行代码......
编译:
javac -cp C:\\Demo_Lib\\Test\\Test1.jar Test2.java
执行命令
javac -cp C:\\Demo_Lib\\Test\\Test1.jar;**.** Test2.java