Maven 1.0.2 和 JDK 1.6 问题

发布于 2025-01-04 10:02:31 字数 2901 浏览 3 评论 0原文

我使用 Maven 1.0.2 和 JDK 1.5 一段时间没有任何问题。我决定迁移到 JDK 1.6,因此我更改了 JAVA_HOME 环境变量(在 Windows 7 系统上),现在在尝试使用 maven 时收到一条奇怪的错误消息(例如,在 cmd 中执行 maven install 命令)。

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。我不知道为什么maven只在我指向JDK 1.6时才搜索它。如果我将 JAVA_HOME 指向 JDK 1.5,一切都会恢复正常。怎么了?谢谢。

I'm working with Maven 1.0.2 and JDK 1.5 for some time without any problems. I decided to migrate to JDK 1.6 so I've changed the JAVA_HOME enviroment variable (on Windows 7 system) and now I receive a strange error message when trying to use maven (maven install command in cmd, for example).

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)

There isn't a command.com file on Windows 7, it's cmd.exe instead. I don't know why maven searches for it only when I point to JDK 1.6. If I point JAVA_HOME back to JDK 1.5, everything comes back to normal. What is happening? Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

作妖 2025-01-11 10:02:31

windows 7 x64没有command.com,因为它是一个16位应用程序我遇到了同样的问题,我的一个朋友找到了一个绝妙的解决方案

复制cmd.exe并将该副本重命名为command.com,将其放在路径中

问题解决了!!!

windows 7 x64 does not have command.com since it is a 16bit application i had the same problem, and a friend of mine found out a brilliant sollution

copy cmd.exe and rename the copy as command.com, put it in the path

Problem solved!!!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文