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

命令提示符中的Java编译错误:类文件的版本52.0错误,应为50.0,java,compilation,version,Java,Compilation,Version,我创建了一个java库程序,并将其作为.jar文件在另一个java程序中使用。我的IDE是NetBeans。我通过命令行尝试了相同的概念,但出现了以下错误: 类文件有错误的版本52.0,应为50.0请删除或 确保它出现在类路径的正确子目录中。 导入Demo1_Lib.Test1; ^ 这是我的步骤 步骤1:在NetBeans IDE中创建了以下类库 package Demo1_Lib; /** * * @author tveluppillai */ public class T

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

类文件有错误的版本52.0,应为50.0请删除或 确保它出现在类路径的正确子目录中。 导入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请删除或 确保它出现在类路径的正确子目录中。 导入Demo1_Lib.Test1; ^


我错过了什么

您正试图使用运行时/编译器JRE/JDK 6运行/引用使用JDK 8编译的类

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

有关这些数字的含义的列表,请参见

下载JDK8,或者如果您已经有了它,将它添加到您的路径中,并将JAVA_设置为HOME

在Unix中:

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

在我将JDK8更改为我的JAVA_主页之后,我能够按照以下方式编译并运行代码

汇编:

javac-cpc:\\Demo\u Lib\\Test\\Test1.jar Test2.java
运行:

javac-cpc:\\Demo\u Lib\\Test\\Test1.jar;****Test2.java

在我将正确的版本更改为JDK 1.8之后。我收到以下错误:包Demo1_Lib不存在。请参阅。我怎么找到的?在stackoverflow中搜索“java包不存在”…尽管问题被标记为重复,但它并不完全是重复的,因为引用的问题是特定于IDE的,而这更一般。这里接受的答案解释得更好!>>>“尝试运行/引用使用运行时/编译器JRE/JDK1.6使用JDK 8编译的类”我能够编译代码。好的-但这确实是一个重复的问题。如果你把错误信息粘贴到谷歌上,你会得到答案-。你如何设置JAVA_主页?并将其添加到路径中?