10

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

“java.exe”'不是内部或外部命令、可运行程序或批处理文件

那么有谁知道我该如何解决这个问题?BR

4

7 回答 7

17

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

  1. 如果%JAVACMD%设置了环境变量,那么它会使用它。
  2. 否则,如果%JAVA_HOME%设置了环境变量,它会尝试使用%JAVA_HOME%\bin\java.exe
  3. 否则,它会尝试使用java.exe; 即它将在您的%PATH% 上查找。

在您的情况下,您已%JAVA_HOME%设置 ... 但设置为 Java 安装的“bin”目录,而不是安装的根目录。所以Ant.bat脚本在错误的地方查找java.exe.

只需%JAVA_HOME%正确设置,它应该可以工作。

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

正如您从上面所看到的,您不需要您的 Java“bin”目录中%PATH%设置 Ant 即可工作,但无论如何设置它是个好主意。这样您就可以简单地从命令行运行 Java 命令。

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

于 2012-08-26T07:32:18.867 回答
1

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

于 2012-08-26T06:53:19.573 回答
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 的要求;这对用户来说是一件方便的事情)

于 2012-08-26T06:56:46.200 回答
1

JAVA_HOME 是 JDK 根文件夹的路径。例如: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
于 2012-08-26T07:02:32.540 回答
1

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

  1. java.exe
  2. javaw.exe
  3. javaws.exe

实际上,oracle windows 安装程序将这些文件的副本放入 %windir/System32 文件夹中(我不明白为什么),但看起来不需要它们(因为它们在安装它们的 JDK 文件夹下仍然可用)。

我也尝试了 SO 和其他论坛上发布的所有各种解决方案,但没有一个对我有用。我还正确设置了所有相关的环境变量(JAVA_PATH、CLASS_PATH 等)。最后,这是唯一对我有用的解决方案。

于 2014-02-04T12:22:13.270 回答
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 文件 ..就是这样。它应该工作。它对我有用。

于 2019-02-18T13:11:01.977 回答
-1

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

于 2012-08-26T07:17:01.630 回答