Ich versuche, eine HelloWorld-Klasse nur als Test zu kompilieren und es zeigt einen Fehler, den ich nicht zu lösen weiß. Es scheint, dass es etwas über inkompatible Version ist, aber wenn ich java -version
und javac -version
beide Anzeige 1.8.0_73. HierJavac für dynamische Kompilierung funktioniert nicht
ist, was ich versuche zu kompilieren:
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);
Aber dies ist die Ausgabe:
/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
"Klassendatei hat falsche Version 52.0, sollte 49.0 sein". Weiß jemand, wie man dieses Problem löst? Ich habe viel versucht, aber ich habe nicht herausgefunden, wie ich es lösen kann.
Sind Sie sicher, dass Sie die richtigen 'Java' und 'Javac' Programme laufen? Sie könnten zwei verschiedene Versionen für eine von ihnen haben. – Maroun
sieht aus wie Ihre Java & Javac Version dis-match, –
@MarounMaroun Ya Ich bin sicher, dass ich das richtige Java laufen lasse. Über den javac habe ich ein externes jar hinzugefügt, das ich in eine andere Site heruntergeladen habe, denn ohne diese "javac.jar" würde mein Code einige Bibliotheken wie com.sun.tools.javac.Main nicht importieren. Wenn das das Problem ist, weiß ich nicht, wie ich es lösen soll. –