2012-04-23 51 views
0

我正在编写一个应用程序,该应用程序使用C#中的Process对象通过具有cmd.exe的ant批处理文件创建Java portlet。“java.exe”未被识别为内部或外部命令,可操作程序或批处理文件

当我通过“创建”命令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变量。你能帮我纠正一下吗?

+0

您是否安装了JRE/JDK?是路径上的java.exe? – 2012-04-23 12:33:53

+3

PATH中是否有java.exe? – Xharze 2012-04-23 12:34:04

+1

这个问题说得不好 - 它实际上缺乏...问题。人们只能猜测你想要到达的信息。 – Romain 2012-04-23 12:36:15

回答

1

尝试设置塔java的路径正确

ü可以给我确切的错误消息u得到...

3

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

0

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

  1. 设置PATH变量。我不知道这一步是否需要,但我只是在TEMP变量中添加了java.exe的路径。
  2. 在命令提示符处将当前目录更改为java.exe父目录。
  3. 现在跑到我需要的命令。如果在命令中引用了某个文件,那么我将放入完整的路径。

希望它可以帮助你。

2

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

希望这可以帮助别人。

1

以我的经验,这个问题与Java路径无关。其实我已经为64位机器安装了java,并且已经用32位设置编译了我的C#程序。从32位程序中调用64位程序是不可能的。所以我将我的目标平台更改为“任何CPU”,它工作正常。

0

如果你在你的PATH变量多个值,确保它们不与下面的结束分号一个空格分隔(;)

0

我有同样的问题,并解决它。我正在使用64位Windows 7和64位Java。将Configuration Manager中的编译目标设置为'x64'解决了这个问题。如果使用'任何CPU',构建可能会回退到'x86',而这不适用于64位Java。因此,您需要针对不同机器的不同版本...

相关问题