我正在尝试编译一个HelloWorld类作为测试,它显示一个我不知道如何解决的错误。看起来它是关于不兼容版本的东西,但当我java -version
和javac -version
都显示1.8.0_73时。
以下是我要编译的内容:
String arquivo2 = "/C:/classes/HelloWorld.java";
PrintWriter saida = new PrintWriter(new FileWriter("logCompilacao.txt"));
int resultadoCompilacao = com.sun.tools.javac.Main.compile(new String[]{arquivo2},saida);
但这是输出:
/C:/classes/HelloWorld.java:2: cannot access java.lang.Object
bad class file: C:\Program Files\Java\jre1.8.0_73\lib\rt.jar(java/lang/Object.class)
class file has wrong version 52.0, should be 49.0
Please remove or make sure it appears in the correct subdirectory of the classpath.
public class HelloWorld {
^
1 error
“类文件有错误的版本52.0,应该是49.0”。有人知道如何解决这个问题吗?我尝试了很多,但我没有找到解决方法。
答案 0 :(得分:0)
为了能够运行java编译器,你从另一侧添加了一些外部功能。
这不是一个好方法。最有可能的是,您只安装了JRE(运行时环境)。
相反,您应该下载安装JDK(开发工具包)。后者带有javac;而你可以放心,它是" javac"和" java"二进制文件可以很好地协同工作
所以:确保你从一个正确的环境开始;不是你从这里或那里带来的东西。
答案 1 :(得分:0)
我终于找到了解决方法。看来默认情况下eclipse只导入jre jar,所以我不得不添加一个外部jar文件' tools.jar'在我的jdk文件夹中找到。 C:\Program Files\Java\jdk1.8.0_73\lib\tools.jar
。
之后我可以编译我的课程