【发布时间】:2016-03-24 11:37:59
【问题描述】:
我正在尝试编译一个 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”。有人知道如何解决这个问题吗?我尝试了很多,但我没有找到如何解决它。
【问题讨论】:
-
您确定您正在运行正确的
java和javac程序吗?其中一个可能有两个不同的版本。 -
看起来你的 java & javac 版本不匹配,
-
@MarounMaroun 是的,我确信我正在运行正确的 java。关于 javac,我添加了一个在另一个站点下载的外部 jar,因为没有这个“javac.jar”,我的代码将无法导入一些库,如 com.sun.tools.javac.Main。如果是这个问题,我不知道如何解决。
标签: java compilation javac