2010-03-09 7 views
3

J'essaye de télécharger mon application GAE en utilisant la console dans Windows. Je reçois l'erreur:Modifier où Java cherche javac.exe

cannot find javac executable based on java.home tried, "C:\Program Files\Java\jre6\bin\javac.exe" and "C:\Program Files\Java\bi n\javac.exe"

Unable to upload app: cannot find javac executable based on java.home, tried "C: \Program Files\Java\jre6\bin\javac.exe" and "C:\Program Files\Java\bin\javac.exe

javac.exe est situé dans C: \ Program Files \ Java \ jdk1.6.0_18 \ bin comment puis-je dire thats java où il est

+0

dans les suggestions affichées, enregistrez votre variable JAVA_HOME entouré quotes java_home = "c: \ program files \ java \ jdk.1.6.0_18" – KevinDTimm

+0

Peut-être que vous utilisez un script qui place JAVA_HOME dans un endroit mal configuré avant de le lancer ... –

Répondre

2

Avez-vous deux versions java installées?
D'après les informations le soleil jre et l'Open jdk? Le jre n'a pas javac.exe et ne peut donc pas le trouver.
Essayez de démarrer votre jar avec C: \ Program Files \ Java \ jdk1.6.0_18 \ bin \ java.exe au lieu de seulement java, si cela n'aide pas ajouter le -Djava.home = "C: \ Program Files \ Java \ jdk1.6.0_18 "option à l'appel.

2

Le message d'erreur fait il est clair que la recherche est basée sur java.home, avez-vous essayé d'ajuster cela?

Cette sortie semble provenir d'une sorte de script qui peut avoir sa propre définition de java.home que vous devez changer.

+0

java.home # java/lang/System% getProperty & (Ljava/lang/String;) Ljava/lang/String; <--- C'est dans le fichier jar que je cours le script. Est-il prudent de changer cette ligne ou devrais-je la changer ailleurs? – Lumpy

0

Définissez la variable d'environnement JAVA_HOME sur C:\Program Files\Java\jdk1.6.0_18. Notez que cette variable pointe vers l'emplacement JDK, pas (contrairement à la variable d'environnement PATH) au chemin où résident les exécutables.

5

Vous devez définir la variable d'environnement JAVA_HOME pour faire référence au dossier de niveau supérieur dans lequel Java est installé. Cliquez-droit sur "Poste de travail", Propriétés, Avancé, Variables d'environnement. S'il y a une variable JAVA_HOME existante, puis corriger pour que sa valeur est

C:\Program Files\Java\jdk1.6.0_18 

S'il n'y a pas variable existante, puis créer un en utilisant le bouton « Nouveau ». C'est à vous de décider si vous le faites pour l'utilisateur actuel ou pour le système.

+0

+1 pour fournir des instructions sur la façon de définir la variable – Dancrumb

+0

J'ai ajouté à la fois java.home et JAVA_HOME avec C: \ Program Files \ Java \ jdk1.6.0_18 et j'obtiens toujours la même erreur. Est-ce que cette valeur peut être gardée ailleurs – Lumpy

+0

voir ci-dessous, il est possible quel que soit le script que vous exécutez a sa propre interprétation de "java.home" et n'utilise pas les variables d'environnement –

1

L'autre façon que vous pouvez faire définir la variable classpath utilisant set CLASSPATH = C: \ Program Files \ Java \ jre6 \ bin \ javac.exe \ jdk1.6.0_18 dans l'invite de commande, mais cela fonctionne pour la session unique. Chaque fois que vous devez définir la variable.

+0

donc je devrais définir java.home = classpath? ou définissez java.home = C: \ Program Files \ Java \ jre6 \ bin \ javac.exe \ jdk1.6.0_18. Aucun travail. – Lumpy

2

La solution la plus simple pour ce problème que j'ai trouvé est d'utiliser la variable JAVA_HOME dans le fichier de script.

Ceci est le contenu de mon bin \ appcfg.cmd:

@"%JAVA_HOME%"\bin\java -cp "%~dp0\..\lib\appengine-tools-api.jar" com.google.appengine.tools.admin.AppCfg %* 

Remarque: vous devriez également vérifier si les points JAVA_HOME à un JDK existant