HelloWorldクラスをテストと同様にコンパイルしようとしていますが、解決方法がわからないというエラーが表示されています。互換性のないバージョンのようですが、java -version
とjavac -version
の両方が1.8.0_73を表示しています。動的コンパイル用のJavacが動作しません
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'プログラムを実行していますか?あなたはそれらの2つの異なるバージョンを持っているかもしれません。 – Maroun
はあなたのJavaとjavacのバージョンの不一致のようです。 –
@MarounMarounええと私は正しいJavaを実行していると確信しています。 javacについて、別のサイトにダウンロードした外部jarを追加しました。このjavac.jarがなければ、私のコードはcom.sun.tools.javac.Mainのようなライブラリをインポートしないためです。それが問題ならば、私はそれを解決する方法を知らない。 –