“java.exe”不被识别为内部或外部命令,可操作程序或批处理文件

时间:2012-04-23 12:32:08

标签: c# java ant cmd

我正在编写一个应用程序,它通过使用C#中的Process对象的cmd.exe创建一个Java批处理文件的Java portlet。

当我将“Create”命令传递给cmd以创建portlet时,我收到如下错误:

'"java.exe"' is not recognized as an internal or external command,
operable program or batch file.

但是当我直接在cmd上输入这个命令时,它可以正常工作。

我在Windows 7上安装了JDK,并在环境变量中设置了JAVA_HOME和ANT_HOME变量。你能帮我纠正一下吗?

7 个答案:

答案 0 :(得分:4)

你应该检查你的PATH变量。您可以使用set命令设置java环境文件夹的正确路径。

答案 1 :(得分:2)

我不知道这是否会帮助正在查看此帖的其他人,但是当我遇到此问题时,因为我正在运行x64计算机并且java.exe已安装到ProgramFiles(x86)文件夹中。我只是将exe的路径添加到'PATH'环境变量中,然后启动就好了。

希望这有助于某人。

答案 2 :(得分:1)

尝试正确设置tha java path

你可以告诉我你得到的确切错误信息......

答案 3 :(得分:1)

根据我的经验,这个问题与Java路径无关。实际上我已经为64位机器安装了java并用32位设置编译了我的C#程序。 32位程序无法调用64位程序。所以我将我的目标平台改为"任何CPU" ,它运行良好。

答案 4 :(得分:0)

我也遇到了同样的问题并找到了我的解决方案。它也可能对你有帮助。

  1. 设置PATH变量。我不知道这个步骤是否需要,但我刚刚在TEMP变量中添加了java.exe的路径。
  2. 在命令提示符下将当前目录更改为java.exe父目录。
  3. 现在跑到我需要的命令。如果在命令中引用了某个文件,那么我将完整路径。
  4. 希望它对你有所帮助。

答案 5 :(得分:0)

如果PATH变量中有多个值,请确保它们没有用结束分号后面的空格分隔(;)

答案 6 :(得分:0)

我有同样的问题并解决了它。我正在使用64位Windows 7和64位Java。将Configuration Manager中的编译目标设置为“x64”解决了它。如果你使用'任何CPU',那么构建可能会回退到'x86',这不适用于64位Java。所以你需要为不同的机器建立不同的构建......