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.
Maven 1.0.2? De ... 2004? –
Oui, toujours à cette version car j'utilise un ancien plugin [AndroMDA] (http://www.andromda.org/docs/index.html) dans un projet. –
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. –