얼마 전에 문제없이 Maven 1.0.2 및 JDK 1.5에서 작업하고 있습니다. JAVA_HOME 환경 변수 (Windows 7 시스템에서)를 변경 했으므로 JDK 1.6으로 마이그레이션하기로 결정 했으므로 cmd (예 : maven install 명령)를 사용하려고 할 때 이상한 오류 메시지가 표시됩니다.Maven 1.0.2 및 JDK 1.6 문제
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)
Windows 7에는 command.com 파일이 없으며 대신 cmd.exe입니다. JDK 1.6을 가리킬 때만 maven이 그것을 검색하는 이유를 모르겠습니다. JAVA_HOME을 JDK 1.5로 다시 지정하면 모든 것이 정상으로 돌아옵니다. 무슨 일 이니? 감사. 그것은 내가 같은 문제를 가진 16 비트 응용 프로그램이기 때문에
Maven 1.0.2? 2004 년? –
예, 프로젝트에서 이전 [AndroMDA] (http://www.andromda.org/docs/index.html) 플러그인을 사용 중이기 때문에 여전히이 버전입니다. –
왜 이런 일이 발생하는지 모르겠다. Java 1.5가 ANT가 잘못된 명령 행을 빌드하는 데 사용하는 1.6보다 다른 OS 이름을 반환하지만 솔직히 다음과 같이 설명한다.이 설정은 디버깅 가치가있다 (EOL Java, 고대 Maven, 이전 플러그인 버전)? 기존 프로젝트 인 경우 아무 것도 변경하지 마십시오. 활성 프로젝트 인 경우 모든 항목을 업데이트하십시오. –