问题
I create a java library program and used it in another java program as .jar file. My IDE is NetBeans. I tried the same concept via command line and I got the following error:
class file has wrong version 52.0, should be 50.0 Please remove or make sure it appears in the correct sub directory of the class path. import Demo1_Lib.Test1; ^
This are my steps.
Step 1: Created the following class library in NetBeans IDE.
package Demo1_Lib;
/**
*
* @author tveluppillai
*/
public class Test1
{
public void print()
{
System.out.println("hello");
}
}
Step 2: Create a java project on netbeans and add the jar file. (Test1.jar) and consume the class library function.
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();
}
}
This compiles fine and when I ran, it gives me the right output in NetBeans
However, when I do the same thing using command prompt I got error.
I used the following command to compile and run it.
javac -cp C:\\Demo_Lib\\Test\\Test1.jar Test2.java
I got the following error:
class file has wrong version 52.0, should be 50.0 Please remove or make sure it appears in the correct sub directory of the class path. import Demo1_Lib.Test1; ^
What am I missing?
回答1:
You are trying to run/reference a class compiled with JDK 8 using a runtime/compiler JRE/JDK 6.
The Java being used by the command line is probably a different version than the one used by NetBeans.
See Java class file for a list of what the numbers mean.
Download JDK8, or if you already have it, add it to your path and set JAVA_HOME.
In Unix:
export JAVA_HOME=directory
export PATH=$PATH:$JAVA_HOME/bin
回答2:
After I change the JDK8 to my JAVA_HOME, I was able to compile the following way and run the code...
Compile:
javac -cp C:\\Demo_Lib\\Test\\Test1.jar Test2.java
Run:
javac -cp C:\\Demo_Lib\\Test\\Test1.jar;**.** Test2.java
来源:https://stackoverflow.com/questions/29906659/java-compiling-error-in-command-prompt-class-file-has-wrong-version-52-0-shoul