2015-04-16 10 views
5

Sto cercando di eseguire l'applicazione Java e sto ottenendo seguente errore,Impossibile trovare un com.sun.tools.javac.Main javac compilatore non è in errore classpath

in grado di trovare un compilatore javac ; com.sun.tools.javac.Main non è su classpath. Forse JAVA_HOME non punta al JDK

Ho passato con molte SO domande e trovato la soluzione è JAVA_HOME deve essere il punto di JDK, JRE non.

Poi ho cercato di stampare JAVA_HOME nel prompt dei comandi,

enter image description here

avevo impostato questo JAVA_HOME dal mio computer-> proprietà-> variabili env -> Sistema vars come sotto,

enter image description here

avevo anche aggiunto nuova variabile in Eclipse utilizzando le preferenze come,

enter image description here

E infine sto ancora ottenendo lo stesso errore. Cosa c'è di sbagliato in JAVA_HOME?

Aggiornamento:

In eclipse-preferences-installed jres c'è solo una voce è presente e che è JDK e selezionato,

enter image description here

E sotto project propertiesjava build path-libraries c'è JRE System Liberary [jdk1.8.0_31] viene utilizzato .

enter image description here

Update 1:

C:\Program Files\Java\jdk1.8.0_31 hanno cartella denominata jre. È la cartella jre che causa questo problema? Posso rimuovere questa cartella? C'è un modo per aggiungere solo jdk liberary nel progetto?

+0

Le sospette se hai avviato una nuova console dopo aver impostato le variabili o no? Se si trattasse di una nuova console rispetto a me, tutto il resto sembra pulito e corretto, ti suggerisco di disinstallare e reinstallare java? A volte gli errori di installazione ci sono. Utilizzare il file .msi o .exe per installare piuttosto che copiare la cartella che incolla. – aProgrammer

risposta

7

Eclipse è un IDE e come tale, ha (almeno) due versioni di Java: Quello cui si utilizza per eseguire (JAVA_HOME) e una JVM che utilizza per eseguire l'applicazione. I due non hanno bisogno di essere lo stesso.

Quindi, per risolvere il problema, è necessario esaminare le preferenze di Eclipse, in particolare Installed JREs che fornisce un elenco di macchine virtuali Java che Eclipse utilizzerà per eseguire il codice Java dai progetti. La mia ipotesi è che ci saranno diverse voci lì e il default sarà un JRE invece di un JDK.

Assicurarsi di avere un JDK nell'elenco e quindi andare al progetto. Nel progetto, è possibile selezionare quale Java VM utilizzare sotto Java Build Path ->Libraries.

[EDIT] Osservare attentamente l'ultima screenshot: è stato configurato per utilizzare Eclipse C:\Program Files\Java\jdk1.8.0_31\jre il che significa che hai la puntò contro il JRE all'interno del JDK. Utilizzare invece C:\Program Files\Java\jdk1.8.0_31 (senza lo \jre alla fine).

[EDIT 2] Se si elimina la cartella jre, Java smetterà di funzionare. Qualsiasi JDK contiene anche un JRE. Il JRE contiene rt.jar con String.class e simili. Il compilatore Java è in tools.jar, che si trova nel JDK.

Se la creazione della voce JRE in Eclipse non è di aiuto, è necessario aggiungerla manualmente al classpath.

È possibile utilizzare una variabile ("Aggiungi variabile ...") per assicurarsi che Eclipse aggiorni il percorso quando si passa a un JRE nuovo/diverso. Prova JAVA_HOME con l'estensione lib/tools.jar

+0

si prega di consultare la domanda aggiornata. – fledgling

+1

Vedere le mie modifiche; Hai selezionato JRE all'interno del JDK. –

+0

Si prega di consultare la domanda aggiornata. – fledgling