【发布时间】:2023-03-15 08:35:01
【问题描述】:
在尝试编译需要$JAVA_HOME/lib/tools.jar 的Javadoc taglet 时,我发现ant(1.8.4 版)将java.home 设置为$JAVA_HOME/jre 而不仅仅是$JAVA_HOME。我因此验证了这一点:
<echo>${java.home}</echo>
<echo>${env.JAVA_HOME}</echo>
[echo] /usr/java/jdk1.7.0_21/jre
[echo] /usr/java/jdk1.7.0_21
根据ant -diagnostics,没有像jdk.home 这样的属性。因此,要使用tools.jar,我必须这样做:
<classpath location="${java.home}/../lib/tools.jar"/>
所以,我有两个问题:
1) 我的 ant 设置是否有问题导致 java.home 指向 JRE 而不是 JDK?
2) 如果这是 ant 应该以这种方式工作,那么在我的类路径中使用.. 是我应该做的事情吗?还是我应该做${env.JAVA_HOME}/lib/tools.jar?还是完全不同的东西?
【问题讨论】:
-
ant 是一个 shell 脚本。尝试在 (+x) 上使用 shell 调试运行它。确保ant找到的java是真正的java(不是任何软链接)
-
1) 我编辑了 shell 脚本,将
echo $JAVA_HOME放在最后一行之前,而此时它没有改变。 2) 我尝试重命名 JDK 目录并在其位置放置一个指向新名称的符号链接。${java.home}更改以反映重命名的目录,因此它使用正确的目录。 -
对不起,我直到现在才看到这个!
标签: ant