'“java.exe”'无法识别为内部或外部命令,

时间:2012-08-26 06:50:31

标签: java ant

我已经下载了Java jdk1.7.0_06和Java jre7。并且我将以下系统变量JAVA_HOME C:\Program Files\Java\jdk1.7.0_06\bin添加到我的Windows 7.但是当我在Windows 7 C:\activiti-5.10\activiti-5.10\setup>ant demo.start上的CMD命令行中键入以下内容以运行演示应用程序时,我在命令中收到以下错误行'

“java.exe”'无法识别为内部或外部命令,可运行程序或批处理文件

所以有谁知道我怎么能解决这个问题? BR

7 个答案:

答案 0 :(得分:13)

如果查看"ant.bat"文件,您将看到它以下列方式查找“java”命令:

  1. 如果设置了%JAVACMD%环境变量,则使用该变量。
  2. 否则,如果设置了%JAVA_HOME%环境变量,它会尝试使用%JAVA_HOME%\bin\java.exe
  3. 否则,它会尝试使用java.exe;即它会查看你的%PATH%。
  4. 在您的情况下,您有%JAVA_HOME%设置...但设置为Java安装的“bin”目录,而不是安装的根目录。因此,Ant.bat脚本查找java.exe的错误位置。

    只需正确设置%JAVA_HOME%即可。

    JAVA_HOME C:\Program Files\Java\jdk1.7.0_06
    

    你不需要 %PATH%上的Java“bin”目录让Ant工作,但最好还是设置它。这样,您只需从命令行运行Java命令即可。

    %CLASSPATH%的设置与此问题无关。实际上,除非build.xml文件被破坏,否则Ant将忽略您的%CLASSPATH%环境变量。

答案 1 :(得分:1)

您需要将文件java.exe放在PATH变量中,而将JRE放在JAVA_HOME中

答案 2 :(得分:1)

通常JAVA_HOME应该是“bin”文件夹的父目录。(jre或jdk)

在这种情况下,ant期望java来自JDK。

在cmd窗口中尝试关注

set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_06
set path="%JAVA_HOME%/bin;%path%;
ant

(旁注:将java.exe添加到路径不是ant的要求;对用户来说这是一件方便的事情)

答案 3 :(得分:1)

JAVA_HOME是JDK根文件夹的路径.eg:C:\ Program Files \ Java \ jdk1.7.0_06但是路径定义C:\ Program Files \ Java \ jdk1.7.0_06 \ bin

JAVA_HOME C:\Program Files\Java\jdk1.7.0_06
JRE_HOME C:\Program Files\Java\jre1.7.0_06
path = C:\Program Files\Java\jdk1.7.0_06\bin;C:\Program Files\Java\jre1.7.0_06\bin

答案 4 :(得分:1)

只需从%windir / System32文件夹中删除以下文件集即可。实际上删除java.exe就足够了,但为了保持一致,只需删除所有与java相关的二进制文件。

  1. 的java.exe
  2. javaw.exe
  3. javaws.exe
  4. 实际上oracle windows安装程序会将这些文件的副本放入%windir / System32文件夹(我不明白为什么),但看起来不需要它们(因为它们在您安装它们的JDK文件夹下都可用)。

    我已尝试在SO和其他论坛中发布的所有各种解决方案,但它们都没有为我工作。我也正确设置了所有相关的环境变量(JAVA_PATH,CLASS_PATH等)。最后,这是唯一对我有用的解决方案。

答案 5 :(得分:0)

转到\ squirrel-sql-3.9.0> squirrel-sql.bat。在记事本中打开该squirrel-sql.bat并注释掉现有逻辑

=======================================
if exist "%IZPACK_JAVA%\bin\javaw.exe" (
  set LOCAL_JAVA=%IZPACK_JAVA%\bin\javaw.exe
) else (
  set LOCAL_JAVA=javaw.exe
)

echo Using java: %LOCAL_JAVA%
=================================

并添加以下逻辑

@echo off

set LOCAL_JAVA=C:\Program Files (x86)\Java\jre7\bin\javaw.exe

echo Using java: %LOCAL_JAVA%
================================

确保在添加上述逻辑集LOCAL_JAVA =时添加javax.exe的正确路径

并从CMD启动.bat文件。它应该工作。它对我有用。

答案 6 :(得分:-1)

我同意上述说明,但如果问题仍然存在,请尝试设置: CLASSPATH = C:\ Program Files \ Java \ jdk1.7.0_06 \ bin