2012-02-12 2 views
2

얼마 전에 문제없이 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 비트 응용 프로그램이기 때문에

+1

Maven 1.0.2? 2004 년? –

+0

예, 프로젝트에서 이전 [AndroMDA] (http://www.andromda.org/docs/index.html) 플러그인을 사용 중이기 때문에 여전히이 버전입니다. –

+0

왜 이런 일이 발생하는지 모르겠다. Java 1.5가 ANT가 잘못된 명령 행을 빌드하는 데 사용하는 1.6보다 다른 OS 이름을 반환하지만 솔직히 다음과 같이 설명한다.이 설정은 디버깅 가치가있다 (EOL Java, 고대 Maven, 이전 플러그인 버전)? 기존 프로젝트 인 경우 아무 것도 변경하지 마십시오. 활성 프로젝트 인 경우 모든 항목을 업데이트하십시오. –

답변

5

윈도우 7의 x64은 command.com을 가지고 있지 않으며, 내 친구는 화려한 sollution

복사 cmd.exe를을 발견하고 명령으로 복사본의 이름을 바꿉니다. co.kr에서 경로에 넣어

문제가 해결되었습니다!