2012-02-12 3 views
2

Je travaille avec Maven 1.0.2 et JDK 1.5 depuis un certain temps sans aucun problème. J'ai décidé de migrer vers JDK 1.6 donc j'ai changé la variable d'environnement JAVA_HOME (sur le système Windows 7) et maintenant je reçois un message d'erreur étrange en essayant d'utiliser maven (maven install commande dans cmd, par exemple).Maven 1.0.2 et JDK 1.6 numéro

java.io.IOException: Cannot run program "command.com": CreateProcess error=2, the 
system could not find the file specified 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460) 
    at java.lang.Runtime.exec(Runtime.java:593) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Exec 
ute.java:646) 
    at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:416) 
    at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:427) 
    at org.apache.tools.ant.taskdefs.Execute.getProcEnvironment(Execute.java 
:180) 
    at org.apache.tools.ant.taskdefs.Property.loadEnvironment(Property.java: 
455) 
    at org.apache.tools.ant.taskdefs.Property.execute(Property.java:359) 
    at org.apache.tools.ant.Task.perform(Task.java:341) 
    at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:185) 
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) 
    at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135) 
    at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233) 
    at com.werken.werkz.jelly.ProjectTag.doTag(ProjectTag.java:112) 
    at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279) 
    at org.apache.maven.plugin.PluginManager.runScript(PluginManager.java:11 
43) 
    at org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java: 
647) 
    at org.apache.maven.MavenSession.attainGoals(MavenSession.java:263) 
    at org.apache.maven.cli.App.doMain(App.java:488) 
    at org.apache.maven.cli.App.main(App.java:1239) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at com.werken.forehead.Forehead.run(Forehead.java:551) 
    at com.werken.forehead.Forehead.main(Forehead.java:581) 
Caused by: java.io.IOException: CreateProcess error=2, O sistema nÒo pode encont 
rar o arquivo especificado 
    at java.lang.ProcessImpl.create(Native Method) 
    at java.lang.ProcessImpl.<init>(ProcessImpl.java:81) 
    at java.lang.ProcessImpl.start(ProcessImpl.java:30) 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:453) 

Il n'y a pas de fichier command.com sous Windows 7, mais plutôt cmd.exe. Je ne sais pas pourquoi maven ne le recherche que lorsque je pointe sur JDK 1.6. Si je renvoie JAVA_HOME à JDK 1.5, tout redevient normal. Qu'est-ce qui se passe? Merci.

+1

Maven 1.0.2? De ... 2004? –

+0

Oui, toujours à cette version car j'utilise un ancien plugin [AndroMDA] (http://www.andromda.org/docs/index.html) dans un projet. –

+0

Je ne sais pas pourquoi cela arrive, je suppose que Java 1.5 renvoie un nom d'OS différent de 1.6 qui conduit ANT à construire la mauvaise ligne de commande, mais honnêtement: Cette installation vaut le débogage (EOL Java, ancien Maven, ancienne version du plugin))? S'il s'agit d'un projet hérité, ne changez rien. S'il s'agit d'un projet actif, mettez à jour tout. –

Répondre

5

Windows 7 x64 ne pas command.com car il est une application 16bit i eu le même problème, et un de mes amis a découvert une sollution brillante

copie cmd.exe et renommer la copie comme commande. com, le mettre dans le chemin

Problème résolu !!!

Questions connexes