由于java.exe访问被拒绝,Ant运行不起作用

时间:2014-02-12 21:23:07

标签: java ant build.xml

我在运行一个简单程序时遇到很多麻烦。

我正在关注本教程 - http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html

当我运行“ant run”时,我收到以下错误

run:
[java] D:\Users\Rich\Code\Java\Standard\Workspace\HelloWorldWithAnt\build.xml:22: java.io.IOException:
Cannot run program "C:\Apps\Java\JDK\jre\bin\java.exe":]
CreateProcess error=5, Access is denied

我已确定ant和java的路径没有任何空格。

以下是我的环境变量

JAVA_HOME=C:\Apps\Java\JDK
JAVACMD=C:\Apps\Java\JDK\bin\java.exe
CLASSPATH=C:\Apps\Java\JDK
Path=otherpaths;C:\Apps\Java\JDK\bin\;morepaths

我甚至试图改变ant.bat

:checkJava
set _JAVACMD="C:\Apps\Java\JDK\bin\java.exe"
rem if "%JAVA_HOME%" == "" goto noJavaHome
rem if not exist "%JAVA_HOME%\bin\java.exe" goto noJavaHome
rem if "%_JAVACMD%" == "" set _JAVACMD=%JAVA_HOME%\bin\java.exe
goto checkJikes

一切都无济于事。

以下命令带回预期结果

java -version
ant -version

我接下来可以尝试什么想法?

更新

我使用eclipse来运行构建文件,它运行正常。 从命令行运行它仍然无法正常工作。

更新2

我更新了ant.bat以在:end部分中包含echo“%_JAVACMD%”。 这会导致正确打印java的路径。

到底是怎么回事?! 另一个应用程序可以使用java吗? 我尝试以管理员身份运行命令提示符,仍然没有任何乐趣。

1 个答案:

答案 0 :(得分:0)

假设您在Windows上,请使用类似的批处理文件来启动您的ant脚本,例如。 :

@ echo off

set ANT_HOME=C:\ant193
set JAVA_HOME=C:\Apps\Java\JDK
set PATH=%JAVA_HOME%\bin;%ANT_HOME%\bin;%PATH%

: DEFAULT
call ant -f %1

: DEBUG
:call ant -debug -f %1

pause

如果您的bat文件名为f.e. antstart.bat然后使用:

antstart yourbuildscript.xml

增加日志级别使用:

: DEFAULT
:call ant -f %1

: DEBUG
call ant -debug -f %1
你的antstart.bat文件中的

也可以使用:

C:\> java -version
C:\> set
C:\> ant -diagnostics

检查您的设置。