【发布时间】:2013-02-11 15:54:54
【问题描述】:
我正在使用安装在/usr/java 中的 Fedora 18 和 JDK 1.7.13。 bin 文件夹下的所有可执行文件都有-rwxr-xr-x 权限。
我在~/.bashrc 中将ANT_HOME 和JAVA_HOME 都设置为:
export ANT_HOME=/home/m/application/apache-ant-1.8.2
export JAVA_HOME=/usr/java/jdk1.7.0_13/
我有一个build.xml 文件,上面写着:
<exec dir="${java.home}/bin/" executable="keytool"/>
但是在运行 ant 之后我得到了这个异常:
/home/m/workspace/build.xml:58:执行失败:java.io.IOException: 无法运行程序“keytool”(在目录中 "/usr/java/jdk1.7.0_13/jre/bin"): error=2, 没有这样的文件或目录 在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) 在 java.lang.Runtime.exec(Runtime.java:615) 在 org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.java:827) 在 org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:445) 。 . .
在 org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
有什么想法吗?
【问题讨论】:
-
嗯,你正在打开的 xml 文件的目录是
/usr/java/jdk1.7.0_13/bin/,但看起来 ant 正在查看/usr/java/jdk1.7.0_13/jre/bin -
以详细模式运行 Ant
ant -v ...并检查ls -al /usr/java/jdk1.7.0_13/jre/bin以确保事情确实存在。 -
你检查了,文件
/usr/java/jdk1.7.0_13/jre/bin/keytool是否存在? -
@Saggio:嗯,无论哪种方式,您在 JDK 和 JRE 的 bin 目录中都有
keytool。一定是别的东西。 -
@carlspring 我可以从 bash 运行 /usr/java/jdk1.7.0_13/jre/bin/keytool