Eclipse - pas de Java (JRE) / (JDK)… pas de machine virtuelle

278

J'essaie de faire réexécuter Eclipse v3.5 (Galileo) sur mon ordinateur - je l'ai déjà exécuté sans problème, mais maintenant je continue à recevoir cette erreur:

Un environnement d'exécution Java (JRE) ou un kit de développement Java (JDK) doit être disponible pour exécuter Eclipse. Aucune machine virtuelle Java n'a été trouvée après avoir recherché les emplacements suivants: C: \ eclipse \ jre \ javaw.exe javaw.exe dans votre PATH actuel

Je viens de faire une nouvelle installation du JDK et du SDK.

J'ai Windows 7 (x64).

Qu'est-ce qui se passe avec ça? Comment je le répare?

Je ne peux exécuter aucun des ipconfig / tracert / ou ping.

Wallter
la source
3
Java Runtime EnvironmentJRE n'est-il pas SDK ...
user85421
1
Installez un JRE - cela donne un javaw.exe sur votre chemin. JDK ne le fait pas.
Thorbjørn Ravn Andersen
12
@Carlos, chaque JDK apporte un JRE privé.
Thorbjørn Ravn Andersen
3
@ Thorbjørn: et à quoi ça sert? Je le sais et aussi que JDK apporte également un JRE public . J'ai écrit que "Java Runtime Environment n'est pas un SDK" mais vous devez lire le post original (avant d'être édité le 11 janvier) pour comprendre pourquoi je l'ai écrit: "Un Java Runtime Environment ( SDK ) ou ..."
user85421
11
Si vous avez récemment installé JDK dans un autre chemin après avoir installé Eclipse, vous pouvez rencontrer ce problème. Cela est dû au fait que l'éclipse code en dur le chemin JDK dans eclipse.ini lors de sa première configuration. Modifiez simplement le chemin JDK correct dans eclipse.ini. Cela devrait résoudre cette erreur.
Rajaraman

Réponses:

221

Eclipse essaiera par défaut de se lancer avec la valeur par défaut " java.exe" (la première référencée par votre PATH)

Trois choses à retenir:

  • "Installer" un JRE ou un JDK peut être aussi simple que de le décompresser ou de le copier depuis un autre ordinateur: il n'y a pas d'étapes d'installation spéciales, et vous pouvez avoir autant de versions JVM différentes (1.4, 5.0, 6.0 ...) que vous le souhaitez , "installé" (copié) presque n'importe où sur votre disque.
  • Je recommanderais de toujours exécuter Eclipse avec le dernier JRE possible (pour bénéficier des dernières évolutions de hotspot ). Vous pouvez:
  • La machine virtuelle Java que vous référencerez dans votre session Eclipse n'est pas toujours celle utilisée pour lancer Eclipse car:
    • Vous n'avez besoin que d'un JRE pour lancer Eclipse, mais une fois qu'Eclipse a été lancé, vous devez enregistrer un JDK pour vos projets (en particulier pour les sources Java et à des fins de débogage, également en théorie pour la compilation, mais Eclipse a son propre compilateur Java) Remarque: Vous pouvez vous inscrire simplement un JRE dans Eclipse car il suffit d' exécuter votre programme, mais encore une fois un JDK permettra plus d'opérations.
    • Même si le Java enregistré par défaut dans Eclipse est celui utilisé pour lancer la session, vous pouvez enregistrer un SDK plus ancien (y compris un autre que Sun) afin d'exécuter / déboguer vos programmes avec un JRE similaire à celui qui effectivement être utilisé dans la production.

JRE installés


Juin 2012, jmbertucci commente:

J'utilise Windows 7 64 bits et j'avais installé le JRE 32 bits. J'ai téléchargé Eclipse 64 bits qui recherche un JRE 64 bits. Parce que je n'avais pas le JRE 64 bits, cela a jeté l'erreur, ce qui est logique.

Je suis allé sur la page d'installation manuelle de Java (qui n'était pas aussi directement accessible que vous le souhaiteriez) et j'ai installé la version 64 bits. Voir " Téléchargements Java pour tous les systèmes d'exploitation ". C'était tout ce dont j'avais besoin.


Avril 2016: Steve Mayne ajoute dans les commentaires :

J'ai dû éditer le eclipse.inifichier pour référencer le bon chemin Java - Eclipse n'utilise pas du tout l'environnement PATHquand il y a une valeur dans eclipse.ini.

VonC
la source
42
Cette question / réponse est un peu ancienne mais je rencontrais ce problème donc je posterai mes notes. J'utilise Win7 64 bits et j'avais installé le JRE 32 bits. J'ai téléchargé Eclipse 64bit qui cherche un JRE 64bit. Comme je n'avais pas le JRE 64 bits, cela a provoqué l'erreur, ce qui est logique. Je suis allé sur la page d'installation manuelle de Java (qui n'était pas aussi directement accessible que vous le souhaiteriez) et j'ai installé la version 64 bits. java.com/en/download/manual.jsp C'était tout ce dont j'avais besoin.
jmbertucci
2
@Nuktu: J'ai ajouté le commentaire de jmbertucci à la réponse
VonC
@jmbertucci: merci pour vos notes. Je les ai ajoutés à la réponse pour plus de visibilité.
VonC
2
@VonC J'ai dû éditer le fichier eclipse.ini pour référencer le bon chemin java - Eclipse n'utilise pas du tout l'environnement PATH quand il y a une valeur dans eclipse.ini
Steve Mayne
1
@SteveMayne Intéressant, merci. J'ai inclus votre commentaire dans la réponse pour plus de visibilité.
VonC
141

Copiez simplement ce fichier:

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

vers le dossier Eclipse

* note testée uniquement pour Windows

Remplacement de javaw.exe dans le dossier Eclipse

Youans
la source
Je cherchais une solution simple pour cette réponse, mais cela n'a pas fonctionné pour moi, au cas où quelqu'un aurait une situation similaire, changer le répertoire vm dans le fichier eclipse.ini pourrait aider .
Noha Kareem
3
N'a pas fonctionné pour moi, m'a donné Erreur: ouverture de la clé de registre 'Software \ Javasoft \ Java Runtime Environment'. J'ai dû copier tout le dossier jre7 (dans mon cas) dans le répertoire Eclipse et le renommer jre. Ensuite, cela a fonctionné.
CuriousMarc
Si quelqu'un échoue, essayez de copier le dossier jre dans le dossier eclipse.
Arthur Zhixin Liu
@NohaKareem, votre avis était le plus proche pour moi. Malheureusement, mon dossier 'jre' ne contenait que 'lib', donc copier sur le dossier Java 'jdk' (bien que plus grand à 350 Mo, mais avait un dossier 'bin' interne) et le renommer 'jre' fonctionnait. Merci.
Mindsect Team
Ayant installé à la fois Java 32 et 64 bits mais java 32 bits dans le chemin, essayer d'ouvrir une éclipse 64 bits échouera, mettre le fichier javaw 64 bits à côté d'exclipse le fera fonctionner.
DiamondDrake
83

Toutes les autres réponses sur la configuration que le JAVA_HOMEne sont pas tout à fait raison. Eclipse ne consulte notamment pas leJAVA_HOME . Regardez de plus près le message d'erreur:

... dans votre PATH actuel

Il a littéralement dit PATHnon JAVA_HOME.

Cliquez avec le bouton droit sur Poste de travail et choisissez Propriétés (ou appuyez sur Winkey+ Pause), accédez à l'onglet Avancé , cliquez sur le bouton Variables d'environnement , dans la liste Variables système en bas, sélectionnez Path(non, pas Classpath ), cliquez sur Modifier et ajoutez ;c:\path\to\jdk\binà la fin de la valeur.

Sinon et s'il n'est pas présent, vous pouvez également ajouter JAVA_HOMEune variable d'environnement et l'utiliser dans le PATH. Dans la même boîte de dialogue, cliquez sur Nouveau et ajoutez JAVA_HOMEavec la valeur de c:\path\to\jdk. Ensuite, vous pouvez ajouter ;%JAVA_HOME%\binà la fin de la valeur du Pathparamètre.

BalusC
la source
2
Cela n'a pas fonctionné :) les données du nom de l'environnement: Path --- valeur: C: \ Program Files (x86) \ Java; C: \ Program Files (x86) \ Java \ jdk1.6.0_14 \ bin
Wallter
1
Les chemins avec des espaces doivent être placés entre guillemets.
BalusC
mon chemin a été configuré parfaitement configuré avant, le compilateur Borland a modifié le champ chemin et remplace le chemin java par son propre chemin, maintenant son Fixe, merci !!!
Akhil Jain
1
@BalusC En fait, pas besoin de mettre des chemins entre guillemets lors de la configuration des variables d'environnement PATH sous Windows. Il suffit de les délimiter avec un point-virgule ( ;).
informatik01
c'est la réponse qui le résout. après quelques heures de recherche, pour ceux qui ont le même problème, ce dont vous avez besoin est: 1) assurez-vous que tout est en 64 bits. Doit s'installer automatiquement dans les "fichiers programme", PAS dans les "fichiers programme (x86)". 2) Écrivez le -VM dans le dossier bin contenant les autres réponses. 3) Définissez le chemin comme l'a dit ce gars. Rien ne se produira jamais si vous ne pouvez pas exécuter Java à partir de la ligne de commande. 4) réjouissez
triplebig
36

Ouvrez les propriétés système de Windows à partir du panneau de configuration et recherchez la section des variables d'environnement:

  • Ajoutez une entrée JAVA_HOME pointant vers le répertoire où le JDK est installé (par exemple C: \ Program Files \ Java \ jre6)
  • Recherchez l'entrée Path et ajoutez ce qui suit à la fin;% JAVA_HOME% \ bin
  • OK les changements
  • Redémarrez eclipse pour qu'il soit au courant du nouvel environnement

La plupart des outils Java pourront désormais trouver votre installation Java en utilisant la variable d'environnement JAVA_HOME ou en recherchant java.exe / javaw.exe dans la variable d'environnement Path.

Rob Oxspring
la source
3
Quand j'ai ajouté le nom: valeur JAVA_HOME: "C: \ Program Files (x86) \ Java \ jdk1.6.0_14;% JAVA_HOME% \ bin"
J'obtiens
24

Si vous téléchargez la version 64 bits d'Eclipse; il recherchera la version 64 bits de JRE. Si vous téléchargez la version 32 bits d'Eclipse; il recherchera la version 32 bits de JRE

Ce que j'ai fait, c'est d'installer les versions 32 et 64 bits de JRE. Vous pouvez l'obtenir sur le site SUN Oracle. Le site JAVA semble installer automatiquement la version 32 bits de Java. Je suppose que c'est à cause du navigateur Web.

speedbaron
la source
2
Comme l'a dit ladookie, le problème est probablement dû au fait que le navigateur exécute un code incorrect sur le site Web de Java et obtient la mauvaise version de JAVA ...
Wallter
1
speedbaron est complètement ici. Si vous modifiez votre variable d'environnement PATH, assurez-vous de mettre le chemin de la bonne version. Mon système Windows 7 64 bits avait un JRE 32 bits installé (je ne sais pas pourquoi), j'ai donc installé la version 64 bits et ajouté à PATH le nouveau répertoire. Cela semble bien fonctionner maintenant.
musicliftsme
1
C'était mon problème. Notez que Windows installe 64 bits vers C:\Program Files\Javaet 32 ​​bits vers C:\Program Files (x86)\Java.
styfle
10

Il s'est avéré que tout ce que j'avais à faire était de changer le «chemin» pour:

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

ça l'a fait :)

Wallter
la source
1
BTW, vous devez utiliser jdk1.6.0_16 ou version ultérieure. En utilisant jdk 1.6.0_14, vous ne pouvez pas utiliser correctement les points d'arrêt dans Eclipse: bugs.eclipse.org/bugs/show_bug.cgi?id=279137
Csaba_H
9

J'ai Windows 7 64 bits et j'ai eu le même problème avec Eclipse. Pour le faire fonctionner, j'ai dû utiliser Internet Explorer (version 64 bits) pour télécharger Java. C'était le seul moyen d'obtenir Java pour installer une version 64 bits. Lorsque j'ai utilisé Firefox pour installer Java, il a automatiquement installé une version 32 bits (tellement idiot!). Et la version Eclipse 64 bits ne détecterait pas la version java 32 bits.

ladookie
la source
Je n'ai plus le problème - mais cela semble être une bonne solution et a du sens - il serait intéressant de tester cela avec d'autres navigateurs 64 bits ...
Wallter
7

Solution en bref:

Cliquez avec le bouton droit sur Poste de travail, cliquez sur Propriétés, puis sur Paramètres système avancés, une fenêtre Propriétés système apparaîtra, sous l'onglet Avancé, choisissez les variables d'environnement, la fenêtre Variables d'environnement apparaîtra, dans la section Variables système, recherchez la PATHvariable et modifiez la valeur , en le changeant (la version; jre6, jre7, etc.) en tout jre que vous utilisez, par exemple pour le mien:C:\Program Files\Java\jre7\bin

siaooo
la source
7

Ne vous fiez pas à la variable de chemin d'accès Windows car elle est modifiée dans presque toutes les mises à jour. Par exemple, une mise à jour Java (32 bits sur une machine 64 bits) remplace la JVM 64 bits à l'échelle du système par une JVM 32 bits. Notez également que cette entrée doit être la dernière du fichier eclipse.ini, sinon elle ne fonctionne pas, et - comme indiqué autrement - la variable JAVA_HOME n'est PAS évaluée par eclipse.exe.

même si JAVA_HOME et Path sont configurés comme valides, leur problème peut se produire, donc la façon la plus simple de le faire est d'ouvrir votre eclipse.ini dans votre dossier d'installation eclipse

-vm

C: \ Program Files \ Java \ jdk1.7.0_71 \ bin \ javaw.exe

remplacez C: \ Program Files \ Java \ jdk1.7.0_71 \ bin \ javaw.exe par le chemin de votre jdk ou jre

bowman han
la source
Je vote pour que cette réponse soit la bonne. Ne vous fiez pas à la variable de chemin d'accès Windows car elle est modifiée dans presque toutes les mises à jour. Par exemple, une mise à jour Java (32 bits sur une machine 64 bits) remplace la JVM 64 bits à l'échelle du système par une JVM 32 bits. Notez également que cette entrée doit être la dernière du fichier eclipse.ini, sinon elle ne fonctionne pas. Et - comme indiqué autrement - la variable JAVA_HOME n'est PAS évaluée par eclipse.exe. Veuillez modifier votre réponse en conséquence.
Heri
C'est la meilleure réponse, car elle résout directement le problème réel. Eclipse recherche un chemin pour un paramètre spécifique, et cette valeur est fausse ... donc la correction de la valeur résout le problème.
BuvinJ
6

Dans votre eclipse.inifichier, vous devez mettre à jour le chemin d'accès à la machine virtuelle pour pointer vers le même emplacement où javaw.exeest installé sur votre machine.

Lavakumar Sangeetham
la source
6

Ne vous inquiétez pas, j'ai également été ruiné par cette erreur et fatal et quand je l'ai eu, j'étais tellement frustré même si je donnais de quitter une programmation Android, mais je l'ai eu, il suffit tout d'abord de copier ce code et de le coller dans votre variable système Sous le chemin ...

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

Copiez maintenant le dossier "jre" de votre chemin comme j'ai "jre" sous ce chemin

            C:\Program Files\Java

et le coller dans votre dossier eclipse signifie où votre fichier eclipse.exe est placé. comme si mon éclipse était installée à cet endroit

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

Donc, à l'intérieur du dossier éclipse, collez le dossier "jre". Si vous avez "jre6", renommez-le en "jre" .... et exécutez votre éclipse, vous aurez la solution ...

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

AUTRE SOLUTION: 2

Si le problème ne peut pas être résolu avec les étapes ci-dessus, suivez ces étapes

  1. Copiez le dossier "jre" de votre chemin Java comme C: \ Program Files \ Java \ jre6 * etc, et collez-le dans votre répertoire eclipse (Où est votre éclipse disponible)
  2. Accédez au fichier eclipse.ini, ouvrez-le.
  3. Modifiez le répertoire de votre fichier javaw.exe comme

-vmF: \ Logiciels \ LANGUES SOFTEARE \ Configuration Android \ eclipse Indigo version 32 Bit \ jre \ bin / javaw.exe

Maintenant, cette fois, lorsque vous démarrerez eclipse, il recherchera javaw.exe, il recherchera donc le chemin dans eclipse.ini, car il se trouve maintenant dans le même dossier, il lancera javaw.exe et commencera à fonctionner. .

Si vous avez encore une question, vous pouvez la poser à nouveau, allez simplement sur mon profil et découvrez mon identifiant de messagerie. parce que j'aime le forum de débordement de pile, et cela m'a fait un programmeur. *

Pir Fahim Shah
la source
5

Modifié mon fichier eclipse.ini pour mettre à jour le JDK nouvellement mis à jour. Auparavant, j'avais jdk1.7.0_09 et mis à jour maintenant en jdk1.7.0_80 et éclipse a jeté cette erreur.

Un environnement d'exécution Java (JRE) ou un kit de développement Java (JDK) doit être disponible pour exécuter Eclipse. Aucune machine virtuelle Java n'a été trouvée après avoir recherché les emplacements suivants: C: / Program Files / Java / jdk1.7.0_09 / bin / javaw

Après avoir mis à jour eclipse.ini à partir de,

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

à

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

Eclipse fonctionne très bien.

Chanceux
la source
1
C'est la solution qui a fonctionné pour moi - merci Lucky. Eclipse charge le JRE référencé dans le fichier ini, donc la réponse acceptée est incorrecte en suggérant qu'il regarde le PATH env.
Steve Mayne
3

si après avoir ajouté le C: \ Program Files \ Java \ jdk1.8.0_92 \ bin dans la variable PATH dans les variables d'environnement, l'éclipse a donné la même erreur

vérifiez le fichier de paramètres de configuration eclipse qui se trouve dans le dossier eclipse, vous devez voir le même chemin jdk que vous avez dans C: \ program Files

entrez la description de l'image ici

J'espère que ça aide.

Abdelrahman Elattar
la source
2

Quand j'ai eu un tel problème, dans mon cas, j'avais JDK + JRE x64 installé avec x86 Eclipse. L'installation de x86 JDK + JRE a résolu mon problème :) J'ai également créé un jredossier dans le dossier eclipse et copié le bindossier depuis mon chemin local C:\Program Files (x86)\Java\jre7vers ..\eclipse\jre\.

Igor Lozovsky
la source
2
  • Système d'exploitation 64 bits -> Vous avez besoin de: Java 64 bits et Eclipse 64 bits
  • Système d'exploitation 32 bits -> Vous avez besoin de: Java 32 bits et Eclipse 32 bits

si vous mettez à jour votre version java avec la mise à jour par défaut sur votre ordinateur 64 bits (et que vous avez un navigateur 32 bits ), java installera la version 32 bits. Vous devriez trouver une version java 64 bits et l'installer.

İlker Elçora
la source
1

J'ai eu un collègue avec ce problème exact la semaine dernière. Il l'a corrigé en installant la version x64 d'Eclipse et le JDK x64.

Edit: il a réutilisé son ancien espace de travail après avoir installé les plugins nécessaires, donc cela ne devrait pas être un gros problème

Laura
la source
1

Il existe un moyen plus simple de le faire. Exécutez simplement cmd x64. Tapez cmd x64 pour la barre de recherche dans le menu de démarrage et vous le trouverez :) Ou bien, vous devez définir le chemin d'accès aux fichiers programme (x86) ... Par exemple C: \ Program Files (x86) \ Java \ jre6

Deividas M
la source
1

Ajoutez simplement le CHEMIN JRE POUR Ex: C: \ Program Files \ Java \ jre5 \ bin dans la variable d'environnement Put ";" entre chaque chemin. Cliquez ensuite sur eclipse.exe Cela fonctionnera .....

karthik
la source
1

La raison pour laquelle vous obtenez cette erreur est que eclipse a besoin d'un JRE pour être lancé, ce qu'il ne trouve pas. Le premier endroit qu'il recherche est le répertoire courant, puis le fichier eclipse.ini et enfin le chemin du système. Donc, s'il ne peut pas trouver le bon jvm (les versions binaires sont différentes) à travers l'un de ces trois endroits, il crèche

La méthode recommandée consiste à modifier le fichier eclipse.ini et à indiquer à eclipse où chercher exactement le vm / jre, en incluant cette ligne dans le fichier:

-vm
[chemin vers votre java.exe] (qui est généralement sous "C: \ Program Files \ Java \ jre7 \ bin")

PS Pour modifier le fichier eclipse.ini, vous devrez peut-être le déplacer, le modifier, puis le coller à nouveau

Source: - wiki

user1995120
la source
1

Tout d'abord merci à YouYou pour sa solution! J'ai essayé de répondre par YouYou ( https://stackoverflow.com/a/14464653/801919 ). Au départ, cela n'a pas fonctionné pour moi. Voici les étapes que je devais prendre pour le faire fonctionner:

  1. Initialement, je n'avais pas installé Java sur ma nouvelle machine. J'ai donc dû l'installer (téléchargé depuis: http://java.com/en/download/manual.jsp ).
  2. J'utilise un système d'exploitation 64 bits. Mais, pendant le téléchargement, j'ai reçu le message qui pourrait m'aider à choisir la version de Java à télécharger: Choose the 32-bit download to use with a 32-bit browser.Par conséquent, j'ai téléchargé la version 32 bits.
  3. Ensuite, j'ai suivi la procédure mentionnée dans https://stackoverflow.com/a/14464653/801919 , dans l'espoir d'obtenir la solution.
  4. J'ai une autre erreur: Java was started but returned exit code=13
  5. Ensuite, j'ai installé la version 64 bits de Java.
  6. Copié javaw.exede cette version.

... Et Eclipse a commencé à travailler !!! Yaay!

Vikram
la source
1

Eh bien, cette réponse s'adresse à ceux qui ont essayé tous les autres sans succès, que ce soit un studio Android ou que Eclipseje le fasse généralement quand tout le reste échoue.

  1. Trouvez votre dossier Android SDK et ouvrez le fichier android.bat avec un éditeur de texte
  2. vous trouverez quelques commandes comme celles-ci au début du fichier,

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. Changez-les en

    set java_exe=< le chemin d'accès à votre fichier java.exe (se trouve dans votre dossier jdk / répertoire bin) >

  2. trouver les lignes

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. Remplacez-le par set swt_path=< le chemin d'accès à votre fichier swt.jar respectif, pour x86, il se trouve dans sdk \ tools \ lib \ x86 et pour x64 dans sdk \ tools \ lib \ x86_64 >
  2. Enregistrez et fermez le fichier et maintenant vous êtes prêt à partir.
insomniaque
la source
1

Essayez de définir votre JAVA_HOME dans le bon dossier. Google pour définir des variables d'environnement dans Windows.

Topher Fangio
la source
J'ai suivi ces instructions: wso2.org/project/wsas/java/2.0-beta/docs/setting-java-home.html mais en vain
Wallter
Je déteste le dire ... mais avez-vous redémarré?
Topher Fangio
Le redémarrage n'est pas nécessaire pour installer Java.
Thorbjørn Ravn Andersen
1
ni JAVA_HOME n'est nécessaire. C'est le CHEMIN qui est utilisé pour trouver le javaw.exe. (JAVA_HOME est utilisé par d'autres applications comme ant, donc ce n'est pas mal de le configurer de toute façon)
user85421
1

J'ai aussi rencontré ce problème. Mon cas est le suivant:

entrez la description de l'image ici entrez la description de l'image ici

Dans le texte:

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

J'ai trouvé que leurs types de valeur de registre Pathsont différents, j'ai donc vérifié si le chemin était valide ou non à l'aide de la commande suivante:

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

Par conséquent, j'ai réinitialisé l'environnement local (utilisateur actuel) à l'aide des commandes suivantes ( 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

Mais, dans le processus actuel, il ne peut pas propager ces modifications à d'autres processus en cours d'exécution.

Cependant, si vous modifiez directement les variables d'environnement utilisateur dans l'éditeur de registre,

ces modifications des variables d'environnement n'entraînent pas de changement immédiat. Par exemple, si vous démarrez une autre invite de commandes après avoir effectué les modifications, les variables d'environnement refléteront les valeurs précédentes (et non les valeurs actuelles). Les modifications ne prennent effet que lorsque vous vous déconnectez, puis vous reconnectez.

Pour effectuer ces modifications sans avoir à vous déconnecter, diffusez un message WM_SETTINGCHANGE à toutes les fenêtres du système, afin que toutes les applications intéressées (telles que l'Explorateur Windows, le Gestionnaire de programmes, le Gestionnaire des tâches, le Panneau de configuration, etc.) puissent effectuer une mise à jour.

Voir les détails sur Comment propager des variables d'environnement vers le système

Ici, je donne un script PowerShell pour le faire:

# 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
samm
la source
0

Cochez Fenêtre> Préférences> Java> JRE installés. Assurez-vous qu'il y a quelque chose là-dedans; s'il n'y en a pas, ajoutez-en un.

Avez-vous récemment mis à jour votre JDK?

Drew Wills
la source
Oui, j'ai essayé d'ajouter le module complémentaire Android. Mais non (comme l'a dit Topher Fangio), je ne peux pas démarrer Eclipse maintenant.
Wallter
0

Le JDK n'installe pas de machine virtuelle Java dans le chemin par défaut.

Sauf si vous avez besoin d'outils externes pour fonctionner comme ant, le non-JDK est suffisant pour qu'Eclipse fonctionne. La façon la plus simple d'installer une telle machine virtuelle Java est d'aller sur http://java.com et de la laisser installer ce qu'elle veut installer.

Ensuite, double-cliquez à nouveau sur le binaire Eclipse.

Thorbjørn Ravn Andersen
la source
Je l'ai réinstallé (il m'a même demandé si je voulais le réinstaller) en vain. (J'ai fait le plugin Google Chrome 14 - ou quelque chose comme ça et le Firefox)
Wallter
Vous êtes allé sur java.com? Pas javasoft.com?
Thorbjørn Ravn Andersen
0

définissez la variable JAVA_HOME et annoncez JAVA_HOME / bin sur la variable de chemin d'événement.

scientifique
la source
comme ceci: "C: \ Program Files (x86) \ Java; C: \ Program Files (x86) \ Java \ jdk1.6.0_14 \ bin"? - ça n'a toujours pas fonctionné :)
Wallter le
Référencer JAVA_HOME dans la variable de chemin nécessite de l'incorporer:% JAVA_HOME% \ bin
Heri
Pour moi (Windows 10 64 bits + Eclipse 4.10), l'astuce consistait à ajouter, en plus de la JAVA_HOMEvariable d'environnement, la JRE_HOMEvariable, qui était définie sur l'emplacement de l' javaw.exeemplacement (qui est probablement toujours le dossier bin du JDK installé). ).
Guy Avraham
0

J'ai eu le même problème (Windows 7 x64, JDK 64 bits, Eclipse 32 bits), et j'ai trouvé 2 solutions:

  • Installez la version 64 bits d'Eclipse (trouvée en cliquant sur l'onglet "Builds de développement" sur la page des téléchargements.)
  • Installez la version 32 bits du JDK.
Tim
la source
Voir mais vous utilisiez Windows 7 x86 où j'utilisais x64 --- comme d'autres ont déclaré que ce problème pouvait être un glych de la part de SUN dans leur programmation de la façon dont leur page Web «détecte la version» (c'est-à-dire x64 ou x86) vous devrait utiliser
Wallter
Correction, j'utilisais Windows 7 x64
Tim
0

J'ai eu le même problème. Pour moi, la solution la plus simple était d'installer à la fois le JRE et l'éclipse en x86 ou x64. Lorsque leur type de bit ne correspondait pas, Eclipse n'a pas pu le trouver. Donc, si ce n'est pas un gros problème pour vous de désinstaller et réinstaller afin de les faire correspondre, je le ferais.

J'ai fini par installer: Java Runtime Environment 1.7.0.3 (64 bits) et Eclipse Indigo (3.7) (64 bits)

Ensuite, cela fonctionne.

Loren C Fortner
la source
0

Lorsque j'ai copié seulement javaw, la deuxième erreur s'est produite, il n'y a pas de fichier java.dll, quand je l'ai copié aussi, eclipse n'a pas démarré, ce que j'ai fait, c'est que j'ai copié tout le dossier jdk dans le dossier eclipse et renommé id en jre. Problème résolu.

Matej Šípka
la source