Eclipse - no Java (JRE) / (JDK) ... nessuna macchina virtuale


278

Sto cercando di eseguire nuovamente Eclipse v3.5 (Galileo) sul mio computer: l'ho già eseguito senza problemi, ma ora continuo a ricevere questo errore:

Per eseguire Eclipse è necessario disporre di un Java Runtime Environment (JRE) o di Java Development kit (JDK). Nessuna macchina virtuale Java trovata dopo aver cercato i seguenti percorsi: C: \ eclipse \ jre \ javaw.exe javaw.exe nel tuo PERCORSO corrente

Ho appena fatto una nuova installazione sia di JDK che di SDK.

Ho Windows 7 (x64).

Che succede con questo? Come lo aggiusto?

Non riesco a eseguire alcun ipconfig / tracert / o ping.


3
Java Runtime EnvironmentJRE non è SDK ...
user85421

1
Installa un JRE - questo dà un javaw.exe nel tuo percorso. JDK non lo fa.
Thorbjørn Ravn Andersen,

12
@Carlos, ogni JDK porta un JRE privato.
Thorbjørn Ravn Andersen,

3
@ Thorbjørn: e qual è il punto? Lo so e anche che JDK porta anche un JRE pubblico . Ho scritto che "Java Runtime Environment non è SDK" ma devi leggere il post originale (prima di essere modificato l'11 gennaio) per capire perché l' ho scritto: "Un Java Runtime Environment ( SDK ) o ..."
user85421

11
Se JDK è stato installato di recente in un altro percorso dopo aver installato Eclipse, è possibile che si verifichi questo problema. Questo perché eclipse codifica il percorso JDK in eclipse.ini quando viene configurato per la prima volta. Basta cambiare il percorso JDK corretto in eclipse.ini. Questo dovrebbe risolvere questo errore.
Rajaraman,

Risposte:


221

Per impostazione predefinita, Eclipse proverà ad avviarsi con " java.exe" di default (il primo a cui fa riferimento il tuo PATH)

Tre cose da ricordare:

  • "Installare" un JRE o un JDK può essere semplice come decomprimerlo o copiarlo da un altro computer: non ci sono passaggi di installazione speciali e puoi avere tutte le diverse versioni JVM (1.4, 5.0, 6.0 ...) che desideri , "installato" (copiato) quasi ovunque sul disco.
  • Consiglierei di eseguire sempre Eclipse con l' ultimo JRE possibile (per beneficiare delle ultime evoluzioni dell'hotspot ). Puoi:
  • La JVM a cui farai riferimento durante la sessione Eclipse non è sempre quella utilizzata per l'avvio di Eclipse perché:
    • Hai solo bisogno di un JRE per avviare Eclipse, ma una volta lanciato Eclipse, dovresti registrare un JDK per i tuoi progetti (specialmente per sorgenti Java e scopi di debug, anche in teoria per la compilazione ma Eclipse ha il suo compilatore Java) Nota: puoi registrare solo un JRE in Eclipse perché è sufficiente per eseguire il programma, ma di nuovo un JDK consentirà ulteriori operazioni.
    • Anche se il Java registrato predefinito in Eclipse è quello utilizzato per avviare la sessione, è possibile registrare un SDK più vecchio (incluso uno non Sun) per eseguire / eseguire il debug dei programmi con un JRE simile a quello che verrà effettivamente utilizzato nella produzione.

JRE installati


Giugno 2012, commenta jmbertucci :

Sto eseguendo Windows 7 a 64 bit e avevo installato il JRE a 32 bit. Ho scaricato Eclipse a 64 bit che cerca un JRE a 64 bit. Poiché non avevo il JRE a 64 bit, questo ha gettato l'errore, il che ha senso.

Sono andato alla pagina di installazione manuale di Java (che non era direttamente accessibile come vorresti) e ho installato la versione a 64 bit. Vedere " Download Java per tutti i sistemi operativi ". Questo era tutto ciò di cui avevo bisogno.


Aprile 2016: Steve Mayne aggiunge nei commenti :

Ho dovuto modificare il eclipse.inifile per fare riferimento al percorso Java corretto - Eclipse non usa affatto l'ambiente PATHquando c'è un valore eclipse.ini.


42
Questa domanda / risposta è leggermente vecchia ma stavo riscontrando questo problema, quindi posterò i miei appunti. Sto eseguendo Win7 a 64 bit e avevo installato il JRE a 32 bit. Ho scaricato Eclipse 64 bit che cerca un JRE a 64 bit. Perché non avevo il JRE a 64 bit, ha gettato l'errore, il che ha senso. Sono andato alla pagina di installazione manuale di Java (che non era direttamente accessibile come vorresti) e ho installato la versione a 64 bit. java.com/en/download/manual.jsp Era tutto ciò di cui avevo bisogno.
jmbertucci,

2
@Nuktu: ho aggiunto il commento di jmbertucci alla risposta
VonC

@jmbertucci: grazie per i tuoi appunti. Li ho aggiunti alla risposta per una maggiore visibilità.
VonC,

2
@VonC Ho dovuto modificare il file eclipse.ini per fare riferimento al percorso java corretto - Eclipse non utilizza affatto l'ambiente PATH quando c'è un valore in eclipse.ini
Steve Mayne

1
@SteveMayne Interessante, grazie. Ho incluso il tuo commento nella risposta per una maggiore visibilità.
VonC

141

Basta copiare questo file:

c:/Program Files/Java/jre(5,6,7..any version)/bin/javaw.exe

alla cartella Eclipse

* nota testata solo per Windows

Sostituzione di javaw.exe nella cartella Eclipse


Stavo cercando una soluzione semplice come questa risposta, ma non ha funzionato per me, nel caso in cui qualcuno abbia una situazione simile, potrebbe essere utile cambiare la directory vm nel file eclipse.ini .
Noha Kareem,

3
Non ha funzionato per me, mi ha dato errore: apertura chiave di registro 'Software \ Javasoft \ Java Runtime Environment'. Ho dovuto copiare l'intera cartella jre7 (nel mio caso) nella directory Eclipse e rinominarla jre. Quindi ha funzionato.
CuriousMarc

Se qualcuno non riesce, prova a copiare la cartella jre nella cartella eclipse.
Arthur Zhixin Liu,

@NohaKareem il tuo consiglio è stato il più vicino per me. Sfortunatamente, la mia cartella 'jre' conteneva solo 'lib', quindi la copia sulla cartella Java 'jdk' (sebbene fosse più grande a 350 MB, ma aveva una cartella 'bin' interna) e rinominandola 'jre' funzionava. Grazie.
Mindsect Team

Avendo installato java a 32 e 64 bit ma java a 32 bit nel percorso, il tentativo di aprire un'eclissi a 64 bit fallirà, mettendo il file javaw a 64 bit accanto a Exclipse lo farà funzionare.
DiamondDrake

83

Tutte le altre risposte su come impostare solo la JAVA_HOMEnon sono del tutto giusto. Eclipse non consulta in particolare ilJAVA_HOME . Guarda più da vicino il messaggio di errore:

... nel tuo attuale PERCORSO

Letteralmente detto PATH, no JAVA_HOME.

Fai clic con il pulsante destro del mouse su Risorse del computer e scegli Proprietà (o premi Winkey+ Pause), vai alla scheda Avanzate , fai clic sul pulsante Variabili d'ambiente , nell'elenco Variabili di sistema in basso seleziona Path(no, no Classpath ), fai clic su Modifica e aggiungi ;c:\path\to\jdk\binalla fine del valore.

In alternativa e se non presente, puoi anche aggiungere JAVA_HOMEuna variabile d'ambiente e utilizzarla nel file PATH. Nella stessa finestra di dialogo fai clic su Nuovo e aggiungi JAVA_HOMEcon il valore di c:\path\to\jdk. Quindi è possibile aggiungere ;%JAVA_HOME%\binalla fine del valore Pathdell'impostazione.


2
Non ha funzionato :) i dati del nome dell'ambiente: Percorso --- valore: C: \ Programmi (x86) \ Java; C: \ Programmi (x86) \ Java \ jdk1.6.0_14 \ bin
Wallter

1
I percorsi con spazi devono essere racchiusi tra virgolette.
BalusC

il mio percorso è stato configurato perfettamente configurato prima, il compilatore Borland ha modificato il campo path e sostituisce il percorso java con il suo percorso, ora è Fixed, grazie !!!
Akhil Jain,

1
@BalusC In realtà, non è necessario racchiudere i percorsi tra virgolette durante la configurazione delle variabili di ambiente PATH su Windows. Basta delimitarli con punto e virgola ( ;) è sufficiente.
informatik01

questa è la risposta che la risolve. dopo un paio d'ore di ricerca, per coloro che hanno lo stesso problema, ciò di cui hai bisogno è: 1) assicurati che tutto sia a 64 bit. Dovrebbe installarsi automaticamente in "file di programma", NON "file di programma (x86)". 2) Scrivi -VM nella cartella bin che hanno le altre risposte. 3) Imposta il percorso come ha detto questo ragazzo. Non accadrà mai nulla se non puoi eseguire java dalla riga di comando. 4) rallegrati
triplebig

36

Apri le Proprietà di sistema di Windows dal pannello di controllo e dai la caccia alla sezione delle variabili di ambiente:

  • Aggiungere una voce JAVA_HOME che punta alla directory in cui è installato JDK (ad es. C: \ Programmi \ Java \ jre6)
  • Trova la voce Path e aggiungi quanto segue alla fine;% JAVA_HOME% \ bin
  • OK le modifiche
  • Riavvia l'eclissi in modo che sia a conoscenza del nuovo ambiente

La maggior parte degli strumenti Java sarà ora in grado di trovare l'installazione Java utilizzando la variabile di ambiente JAVA_HOME o cercando java.exe / javaw.exe nella variabile di ambiente Path.


3
Quando ho aggiunto il nome: valore JAVA_HOME: "C: \ Programmi (x86) \ Java \ jdk1.6.0_14;% JAVA_HOME% \ bin" Ottengo ancora lo stesso errore
Wallter,

24

Se scarichi la versione a 64 bit di Eclipse; cercherà la versione a 64 bit di JRE. Se scarichi la versione a 32 bit di Eclipse; cercherà la versione a 32 bit di JRE

Quello che ho fatto è stato installare entrambe le versioni a 32 e 64 bit di JRE. Puoi ottenerlo dal sito Oracle SUN. Il sito JAVA sembra installare automaticamente la versione a 32 bit di Java. Immagino che sia a causa del browser web.


2
Come ha detto ladookie, il problema molto probabilmente era il browser che eseguiva un codice errato sul sito Web di Java e otteneva la versione errata di JAVA ...
Wallter,

1
Speedbaron è completamente qui. Se stai modificando la tua variabile ambientale PATH, assicurati di inserire il percorso della versione corretta. Nel mio sistema Windows 7 a 64 bit era installato un JRE a 32 bit (non so perché), quindi ho installato la versione a 64 bit e ho aggiunto a PATH la nuova directory. Sembra funzionare bene ora.
musicliftsme

1
Questo era il mio problema Si noti che Windows installa 64 bit a C:\Program Files\Javae 32 bit a C:\Program Files (x86)\Java.
Styfle

10

Si è scoperto che tutto quello che dovevo fare era cambiare il 'percorso' in:

"C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Programmi (x86) \ Java; C: \ Programmi (x86) \ Java \ jdk1.6.0_14 \ bin "

che ha fatto :)


1
A proposito, dovresti usare jdk1.6.0_16 o successivo. Utilizzando jdk 1.6.0_14 non è possibile utilizzare correttamente i punti di interruzione in Eclipse: bugs.eclipse.org/bugs/show_bug.cgi?id=279137
Csaba_H,

9

Ho Windows 7 a 64 bit e ho avuto lo stesso problema con Eclipse. Per farlo funzionare, ho dovuto usare Internet Explorer (versione a 64 bit) per scaricare Java. Questo era l'unico modo per ottenere java per installare una versione a 64 bit. Quando ho usato Firefox per installare Java, ha installato automaticamente una versione a 32 bit (così idiota!). E la versione Eclipse a 64 bit non rileverà la versione java a 32 bit.


Non ho più il problema - ma questa sembra una buona soluzione e ha senso - sarebbe interessante testarlo con altri browser a 64 bit ...
Wallter

7

Soluzione in breve:

Fai clic con il pulsante destro del mouse su Risorse del computer, fai clic su Proprietà, quindi su Impostazioni di sistema avanzate, verrà visualizzata una finestra Proprietà di sistema, nella scheda Avanzate, scegli variabili ambiente, Verrà visualizzata la finestra Variabili di ambiente, nella sezione Variabili di sistema, cerca la PATHvariabile e modifica il valore , cambiandolo (la versione; jre6, jre7, ecc.) in qualunque jre stai usando, ad esempio per il mio:C:\Program Files\Java\jre7\bin


7

Non fare affidamento sulla variabile del percorso di Windows perché viene modificata in quasi ogni aggiornamento. Ad esempio, un aggiornamento java chrome (a 32 bit su una macchina a 64 bit) sostituisce la JVM a 64 bit a livello di sistema con una JVM a 32 bit. Si noti inoltre che questa voce deve essere l'ultima in eclipse.ini, altrimenti non funziona e, come diversamente indicato, la variabile JAVA_HOME NON viene valutata da eclipse.exe.

anche se hai JAVA_HOME e Path configurati validi, la loro potrebbe avere questo problema, quindi il modo più semplice per farlo è aprire eclipse.ini nella cartella di installazione di eclipse

-vm

C: \ Programmi \ Java \ jdk1.7.0_71 \ bin \ javaw.exe

sostituisci C: \ Programmi \ Java \ jdk1.7.0_71 \ bin \ javaw.exe con il tuo percorso jdk o jre


Voto per questa risposta come quella corretta. Non fare affidamento sulla variabile del percorso di Windows perché viene modificata in quasi ogni aggiornamento. Ad esempio, un aggiornamento java chrome (a 32 bit su una macchina a 64 bit) sostituisce la JVM a 64 bit a livello di sistema con una JVM a 32 bit. Nota anche che questa voce deve essere l'ultima in eclipse.ini, altrimenti non funziona. E - come diversamente indicato - la variabile JAVA_HOME NON viene valutata da eclipse.exe. Modifica la tua risposta di conseguenza.
Heri,

Questa è la risposta migliore, poiché risolve direttamente il problema reale. Eclipse sta cercando un percorso per un parametro specifico e quel valore è sbagliato ... quindi correggere il valore risolve il problema.
BuvinJ,

6

Nel tuo eclipse.inifile, devi aggiornare il percorso della VM per puntare alla stessa posizione in cui javaw.exeè installato sul tuo computer.


6

Non ti preoccupare, sono stato anche rovinato da questo errore e fatale e quando l'ho preso ero così frustrato persino che mi stavo dando da lasciare una programmazione Android, ma l'ho preso, semplicemente prima di tutto copia questo codice e incolla nella tua variabile di sistema Sotto il percorso ...

C: \ Programmi; C: \ Winnt; C: \ Winnt \ System32; C: \ Programmi \ Java \ jre6 \ bin \ javaw.exe

Ora copia la cartella "jre" dal tuo percorso come se avessi "jre" sotto questo percorso

            C:\Program Files\Java

e incollarlo nella cartella eclipse significa dove si trova il file eclipse.exe. come se avessi la mia eclissi impostata in questa posizione

    F:\Softwares\LANGUAGES SOFTEARE\Android Setup\eclipse

Quindi all'interno della cartella eclipse incolla la CARTELLA "jre". Se hai "jre6", rinominalo come "jre" .... ed esegui la tua eclissi otterrai la soluzione ...

   //<<<<<<<<<<<<<<----------------------------->>>>>>>>>>>>>>>>>>>                 

ALTRE SOLUZIONI: 2

Se il problema non è stato risolto con i passaggi precedenti, seguire questi passaggi

  1. Copia la cartella "jre" dal tuo percorso Java come C: \ Programmi \ Java \ jre6 * etc, e incollala nella tua directory eclipse (Dov'è la tua eclipse disponibile)
  2. Vai al file eclipse.ini, aprilo.
  3. Cambia la directory del tuo file javaw.exe come

-vmF: \ Software \ LINGUE SOFTEARE \ Installazione Android \ eclipse Indigo versione 32 Bit \ jre \ bin / javaw.exe

Ora questa volta quando avvierai eclipse cercherà javaw.exe, quindi cercherà il percorso in eclipse.ini, poiché ora si trova nella stessa cartella, quindi avvierà javaw.exe e inizierà a funzionare .

Se hai ancora qualche domanda che puoi chiedere di nuovo, basta andare sul mio profilo e scoprire il mio ID e-mail. perché adoro il forum di overflow dello stack e mi ha reso un programmatore. *


5

Ho modificato il mio file eclipse.ini per aggiornare il JDK appena aggiornato. In precedenza avevo jdk1.7.0_09 e ora aggiornato a jdk1.7.0_80 ed eclipse ha generato questo errore.

Per eseguire Eclipse è necessario disporre di Java Runtime Environment (JRE) o Java Development Kit (JDK). Nessuna macchina virtuale Java trovata dopo aver cercato i seguenti percorsi: C: / Programmi / Java / jdk1.7.0_09 / bin / javaw

Dopo aver aggiornato eclipse.ini da,

-vm
C:/Program Files/Java/jdk1.7.0_09/bin/javaw

per

-vm
C:/Program Files/Java/jdk1.7.0_80/bin/javaw

Eclipse funziona bene.


1
Questa è la soluzione che ha funzionato per me - grazie Lucky. Eclipse carica il JRE a cui si fa riferimento nel file ini, quindi la risposta accettata non è corretta nel suggerire che esamina il percorso env.
Steve Mayne,


3

se dopo aver aggiunto la C: \ Programmi \ Java \ jdk1.8.0_92 \ bin nella variabile PATH nelle variabili di ambiente l'eclissi ha dato lo stesso errore

controlla il file delle impostazioni di configurazione di eclipse trovato nella cartella eclipse, devi vedere lo stesso percorso jdk che hai in C: \ program Files

inserisci qui la descrizione dell'immagine

Spero sia di aiuto.


2

Quando ho avuto questo problema, nel mio caso avevo installato x64 JDK + JRE con x86 Eclipse. Quindi l'installazione di x86 JDK + JRE ha risolto il mio problema :) Inoltre ho creato la jrecartella nella cartella eclipse e la bincartella copiata dal mio percorso locale C:\Program Files (x86)\Java\jre7in ..\eclipse\jre\.


2
  • Sistema operativo a 64 bit -> È necessario: Java a 64 bit ed Eclipse a 64 bit
  • Sistema operativo a 32 bit -> È necessario: Java a 32 bit ed Eclipse a 32 bit

se aggiorni la tua versione java con l'aggiornamento predefinito nel tuo computer a 64 bit (e hai un browser a 32 bit ), java installerà la versione a 32 bit. Dovresti trovare la versione java a 64 bit e installarla.


1

Ho avuto un collega con questo esatto problema la scorsa settimana. Lo ha riparato installando la versione x64 di Eclipse e il x64 JDK.

Modifica: ha riutilizzato il suo vecchio spazio di lavoro dopo aver installato i plug-in necessari, quindi non dovrebbe essere un grosso problema


1

C'è un modo più semplice per farlo. Basta eseguire cmd x64. Digita cmd x64 per la barra di ricerca nel menu di avvio e lo troverai :) O in alternativa, dovresti impostare il percorso per programmare i file (x86) ... Ad esempio C: \ Programmi (x86) \ Java \ jre6


1

Basta aggiungere il PERCORSO JRE PER Ex: C: \ Programmi \ Java \ jre5 \ bin nella variabile ambientale Put ";" tra ogni percorso. Quindi fare clic su eclipse.exe Funzionerà .....


1

Il motivo per cui si ottiene questo errore è perché per avviare Eclipse è necessario un JRE, che non riesce a trovare. Il primo posto in cui cerca è la directory corrente, quindi il file eclipse.ini e infine il percorso di sistema. Quindi, se non riesce a trovare il jvm corretto (le versioni di bit sono diverse) in una di queste tre posizioni, viene culla

Il modo consigliato è modificare il file eclipse.ini e dire a eclipse dove cercare esattamente il file vm / jre, includendo questa riga nel file:

-vm
[percorso del tuo java.exe] (che si trova generalmente in "C: \ Programmi \ Java \ jre7 \ bin")

PS Per modificare eclipse.ini, potrebbe essere necessario spostarlo, modificarlo e incollarlo nuovamente

Fonte: - wiki


1

Innanzitutto grazie a YouYou per la sua soluzione! Ho provato a rispondere da YouYou ( https://stackoverflow.com/a/14464653/801919 ). Inizialmente, non ha funzionato per me. Di seguito sono riportati i passaggi che dovevo prendere per farlo funzionare:

  1. Inizialmente, non avevo Java installato sulla mia nuova macchina. Quindi, ho dovuto installarlo (scaricato da: http://java.com/en/download/manual.jsp ).
  2. Sto eseguendo il sistema operativo a 64 bit. Ma, durante il download, ho ricevuto il messaggio che poteva aiutarmi a scegliere quale versione di Java scaricare: Choose the 32-bit download to use with a 32-bit browser.Quindi, ho scaricato la versione a 32 bit.
  3. Quindi, ho seguito la procedura menzionata in https://stackoverflow.com/a/14464653/801919 , sperando di ottenere la soluzione.
  4. Ho qualche altro errore: Java was started but returned exit code=13
  5. Quindi, ho installato la versione a 64 bit di Java.
  6. Copiato javaw.exeda quella versione.

... E Eclipse ha iniziato a funzionare !!! Yaay!


1

Bene, questa risposta è per coloro che hanno provato tutti quanti altri ancora senza fortuna, possa essere Android Studio o di Eclipsesolito lo faccio quando tutto il resto fallisce.

  1. Trova la tua cartella sdk Android e apri il file android.bat con un editor di testo
  2. troverai alcuni comandi come questi all'inizio del file,

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. Modificali in

    set java_exe=< il percorso del file java.exe (che si trova nella cartella jdk / directory bin) >

  2. trova le linee

rem Set SWT.Jar path based on current architecture (x86 or x86_64) for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

  1. Sostituiscilo con set swt_path=< il percorso del tuo rispettivo file swt.jar, per x86 è su sdk \ tools \ lib \ x86 e per x64 su sdk \ tools \ lib \ x86_64 >
  2. Salva e chiudi il file e ora sei a posto ..

1

Prova a impostare JAVA_HOME sulla cartella corretta. Google per l'impostazione delle variabili di ambiente in Windows.


Ho seguito queste istruzioni: wso2.org/project/wsas/java/2.0-beta/docs/setting-java-home.html ma inutilmente
Wallter

Odio dirlo ... ma hai riavviato?
Topher Fangio,

Il riavvio non è necessario per installare Java.
Thorbjørn Ravn Andersen,

1
né è necessario JAVA_HOME. È il PERCORSO utilizzato per trovare javaw.exe. (JAVA_HOME è utilizzato da alcune altre applicazioni come la formica, quindi non è sbagliato impostarlo comunque)
user85421

1

Ho riscontrato anche questo problema. Il mio caso è il seguente:

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Nel testo:

HKEY_CURRENT_USER\Environment
    Path    REG_SZ    %JAVA_HOME%\bin;C:\ProgramFiles\nodejs

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
    JAVA_HOME    REG_SZ    C:\ProgramFiles\Java\jdk
    Path    REG_EXPAND_SZ    C:\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\
WindowsPowerShell\v1.0\;C:\Program Files\Intel\DMIX;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Progra
m Files (x86)\Perforce;C:\ProgramFiles\010 Editor;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\ProgramFiles\
Git\cmd;C:\Program Files (x86)\Skype\Phone\

C:\Users\ssfang> echo %^JAVA_HOME% = "%^JAVA_HOME%" = %%JAVA_HOME%% %JAVA_HOME%
%JAVA_HOME% = "%^JAVA_HOME%" = %C:\ProgramFiles\Java\jdk% C:\ProgramFiles\Java\jdk

Ho trovato che i loro tipi di valore del registro Pathsono diversi, quindi ho verificato se il percorso è valido o meno con il comando seguente:

C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".

Di conseguenza, ho resettato l'ambiente locale (utente corrente) con i seguenti comandi ( Setx ):

C:\Users\ssfang> setx PATH %^JAVA_HOME%\bin;"C:\ProgramFiles\nodejs"

SUCCESS: Specified value was saved.

C:\Users\ssfang> reg query HKEY_CURRENT_USER\Environment /v Path

HKEY_CURRENT_USER\Environment
    Path    REG_EXPAND_SZ    %JAVA_HOME%\bin;C:\ProgramFiles\nodejs

C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".

C:\Users\ssfang>echo %PATH%
C:\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Fi
les\Intel\DMIX;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Perforce;C:\ProgramFile
s\010 Editor;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\ProgramFiles\Git\cmd;C:\Program Files (x86)\Skype\
Phone\;%JAVA_HOME%\bin;C:\ProgramFiles\nodejs

Ma, nel processo attuale, non può propagare tali modifiche ad altri processi in esecuzione.

Tuttavia, se modifichi direttamente le variabili di ambiente dell'utente nell'Editor del Registro di sistema,

tali modifiche alle variabili di ambiente non comportano cambiamenti immediati. Ad esempio, se si avvia un altro prompt dei comandi dopo aver apportato le modifiche, le variabili di ambiente rifletteranno i valori precedenti (non quelli correnti). Le modifiche non avranno effetto fino alla disconnessione e al successivo accesso.

Per effettuare queste modifiche senza disconnettersi, trasmettere un messaggio WM_SETTINGCHANGE a tutte le finestre del sistema, in modo che qualsiasi applicazione interessata (come Windows Explorer, Program Manager, Task Manager, Pannello di controllo e così via) possa eseguire un aggiornamento.

Vedere i dettagli in Come propagare le variabili di ambiente al sistema

Qui, do uno script PowerShell per farlo:

# powershell -ExecutionPolicy ByPass -File
# Standard, inline approach: (i.e. behaviour you'd get when using & in Linux)
# START /B CMD /C CALL "foo.bat" [args [...]]
# powershell -ExecutionPolicy ByPass -WindowStyle Hidden -File myScript.ps1 


<#
Add-Type @'

public class CSharp
{
    public static void Method(object[] first, object[] second)
    {
        System.Console.WriteLine("Hello world");
    }
}
'@
$a = 1..4;
[string[]]$b = "a","b","c","d";
[CSharp]::Method($a, $b);
#>


<#

#http://stackoverflow.com/questions/16552801/how-do-i-conditionally-add-a-class-with-add-type-typedefinition-if-it-isnt-add

#Problem Add-Type : Cannot add type. The type name 'PInvoke.User32' already exists.

if (-not ("MyClass" -as [type])) {
    add-type @"
    public class MyClass { }
"@
}


p.s. there's no Remove-Type; see this answer for more on how to best work around this limitation:
http://stackoverflow.com/questions/3369662/can-you-remove-an-add-ed-type-in-powershell-again

I think it will be wanted when debugging.
It is much simpler to close a tab in Console and open new one in PowerShell_ISE.exe or close PowerShell.exe.

Or

Start-Job -ScriptBlock {
    param([uri]$url,$OutputDir)
    # download and save pages
    Invoke-RestMethod $url | Out-File "$OutputDir\$($url.Segments[-1])" -Force
} -ArgumentList $link,$OutputDir

#>
if (-not ([System.Management.Automation.PSTypeName]'PInvoke.Program').Type)
{
    $sig=@"
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.Collections.Generic;

// The global namespace is the "root" namespace: global::system will always refer to the .NET Framework namespace System.

///P/Invoke (Platform Invoke)
namespace PInvoke
{
    public static class User32
    {
        /// http://www.pinvoke.net/default.aspx/Constants/HWND.html
        // public const IntPtr HWND_BROADCAST = new IntPtr(0xffff);
        /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms725497(v=vs.85).aspx
        /// http://www.pinvoke.net/default.aspx/Constants/WM.html
        public const UInt32 WM_SETTINGCHANGE = 0x001A;

        // SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,    (LPARAM) "Environment", SMTO_ABORTIFHUNG,    5000, &dwReturnValue);

        /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms644952(v=vs.85).aspx
        /// If the function succeeds, the return value is nonzero. 
        [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SendMessageTimeout", SetLastError = true)]
        public static extern uint SendMessageTimeout(IntPtr hWnd, uint Msg, int wParam, string lParam, SendMessageTimeoutFlags fuFlags, uint uTimeout, out int lpdwResult);
    }

    [Flags]
    public enum SendMessageTimeoutFlags : uint
    {
        SMTO_NORMAL = 0x0,
        SMTO_BLOCK = 0x1,
        SMTO_ABORTIFHUNG = 0x2,
        SMTO_NOTIMEOUTIFNOTHUNG = 0x8,
        SMTO_ERRORONEXIT = 0x20
    }

    public class Program
    {
        public static void Main(string[] args)
        {
            //int innerPinvokeResult;
            //uint pinvokeResult = User32.SendMessageTimeout(User32.HWND_BROADCAST, User32.WM_SETTINGCHANGE, 0, "Environment", SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out innerPinvokeResult);
            Console.WriteLine("Over!!!!!!!!!!!!!!!!!!!!!!!!!");
        }
    }
}
"@

    Add-Type -TypeDefinition $sig
}


## [PInvoke.Program]::Main([IntPtr]::Zero);

$innerPinvokeResult=[int]0
[PInvoke.User32]::SendMessageTimeout([IntPtr]0xffff, [PInvoke.User32]::WM_SETTINGCHANGE, 0, "Environment", [PInvoke.SendMessageTimeoutFlags]::SMTO_NORMAL, 1000, [ref]$innerPinvokeResult);

Setx setx [/ s [/ u [] [/ p []]]] [/ m]

/m Specifies to set the variable in the system environment. The default setting is the local environment

0

Seleziona Finestra> Preferenze> Java> JRE installati. Assicurati che ci sia qualcosa lì; in caso contrario, aggiungine uno.

Hai aggiornato di recente il tuo JDK?


Sì, ho provato ad aggiungere il componente aggiuntivo Android. Ma no (come ha detto Topher Fangio) non posso avviare Eclipse ora.
Wallter,

0

JDK non installa una JVM nel percorso predefinito.

A meno che non siano necessari strumenti esterni per funzionare come ant, il non JDK è sufficiente per l'esecuzione di Eclipse. Il modo più semplice per installare tale JVM è visitare http://java.com e lasciarlo installare qualunque cosa voglia installare.

Quindi fare di nuovo doppio clic sul file binario Eclipse.


L'ho reinstallato (mi ha persino chiesto se volevo reinstallarlo) senza alcun risultato. (Ho fatto sia il plug-in Google Chrome 14 - o qualcosa del genere && Firefox)
Wallter

Sei andato su java.com? Non javasoft.com?
Thorbjørn Ravn Andersen,

0

imposta la variabile JAVA_HOME e aggiungi JAVA_HOME / bin alla variabile del percorso di valutazione.


in questo modo: "C: \ Programmi (x86) \ Java; C: \ Programmi (x86) \ Java \ jdk1.6.0_14 \ bin"? - continuava a non funzionare :)
Wallter l'

Il riferimento a JAVA_HOME nella variabile path richiede l'incorporamento:% JAVA_HOME% \ bin
Heri

Per me (Windows 10 64 bit + Eclipse 4.10) il trucco era aggiungere, oltre alla JAVA_HOMEvariabile d'ambiente, la JRE_HOMEvariabile, che era impostata sulla posizione della javaw.exeposizione (che è probabilmente sempre la cartella bin del JDK che è installata ).
Guy Avraham,

0

Ho avuto lo stesso problema (Windows 7 x64, 64 bit JDK, 32 bit Eclipse) e ho trovato 2 soluzioni:

  • Installa la versione a 64 bit di Eclipse (trovata facendo clic sulla scheda "Build di sviluppo" nella pagina dei download).
  • Installa la versione a 32 bit di JDK.

Vedi ma stavi usando Windows 7 x86 dove stavo usando x64 --- come altri hanno affermato che questo problema potrebbe essere stato un fattore da parte di SUN nella loro programmazione di come la loro pagina web "rileva la versione" (cioè x64 o x86) dovrebbe usare
Wallter il

Correzione, stavo usando Windows 7 x64
Tim

0

Ho avuto lo stesso problema. Il modo più semplice per me è stato quello di installare sia JRE che l'eclissi come x86 o x64. Quando il loro tipo di bit non corrispondeva, eclipse non riusciva a trovarlo. Quindi, se non è un grosso problema disinstallare e reinstallare per farli combaciare, lo farei.

Ho finito per installare: Java Runtime Environment 1.7.0.3 (64-bit) ed Eclipse Indigo (3.7) (64-bit)

Quindi funziona.


0

Quando ho copiato solo javaw, si è verificato il secondo errore, non esiste un file java.dll, quando l'ho copiato anch'esso, eclipse non è stato avviato, quello che ho fatto è stato copiare l'intera cartella jdk nella cartella eclipse e rinominare id in jre. Problema risolto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.