2016-03-24 11 views
4

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.

+3

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

+0

sieht aus wie Ihre Java & Javac Version dis-match, –

+0

@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. –

Antwort

0

Ich endlich gefunden, wie man es löst. Es sieht so aus, als würde Eclipse standardmäßig nur jre jars importieren, also musste ich die Datei "tools.jar", die ich in meinem jdk-Ordner gefunden habe, als externes jar hinzufügen. C:\Program Files\Java\jdk1.8.0_73\lib\tools.jar. Danach konnte ich meine Klassen kompilieren

0

Sie haben externe von einer anderen Seite hinzugefügt, um den Java-Compiler ausführen zu können.

Das ist kein guter Ansatz. Wahrscheinlich haben Sie nur eine JRE (Laufzeitumgebung) installiert.

Stattdessen sollten Sie ein JDK (Development Kit) herunterladen und installieren. Der spätere kommt mit javac; und Sie können sicher sein, dass seine "javac" und "java" Binaries gut zusammen funktionieren.

Also: stellen Sie sicher, dass Sie mit einer korrekten Umgebung beginnen; nicht etwas, das du mit Sachen von hier oder da zusammengezogen hast.

+0

Aber das ist das Problem. JDK ist installiert und wie ich schon sagte ist die neueste Version: 1.8.0_73. JRE und JDK sind beide installiert. Aber ohne dieses externe Jar läuft das Programm nicht –