在 Eclipse 中通过 IvyDE 运行 ivy resolve 时,其中包含执行 javac ant 任务的 packager.xml,我得到以下信息:
Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "C:\Program Files\Java\jdk1.6.0_22\jre" at org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler(CompilerAdapterFactory.java:108)
在 eclipse.ini 中我有
-vm
C:\Program Files\Java\jdk1.6.0_22\bin\javaw.exe
并在帮助 - 关于 Eclipse - 安装详细信息 - 配置我看到了
java.home=C:\Program Files\Java\jdk1.6.0_22\jre
如何让 java.home 指向 C:\Program Files\Java\jdk1.6.0_22
?
最佳答案
Eclipse 在内部使用它自己的 javac 实现。因此,对于大多数用途,您只需要一个兼容的 JRE。但是 ANT 中的 javac 任务考虑 JAVA_HOME 或检查本地 path
多变的。在 Windows 机器上,作为临时修复,您可以执行以下操作:
Open a command prompt
然后输入
SET path=C:\Program Files\Java\jdk1.6.0_22\;%path%
按回车
然后输入
<eclipsehome>\eclipse.exe
现在,从您的 eclipse 生成的任何进程都将在路径变量中包含您的 JDK 版本。
永久解决方案..
1. go to advance system setting
2. 选择advanced
标签
3. 选择environment variables
4.修改系统path
变量和 JAVA_HOME(如果需要)
你可以为 *nix 系统做类似的事情(只需检查如何在它们上设置环境设置)
希望这会奏效。
更新
PROJECT 类路径与 ANT 类路径不同。要设置 Ant 类路径,请导航至 window->preferences->ant->runtime
这里检查是否Global Entries
指向 C:\Program Files\Java\jdk1.6.0_22\lib\tools.jar
如果没有,则添加它。通常它适用于大多数 Ant 要求 javac 任务的情况。如果失败,请检查其他脚本是否未重置您的 JAVA_HOME 变量和 ANT global entries
设置。
如果 IvyDE 没有使用与 eclipse 捆绑在一起的 ANT 作为插件(并引用一些标准安装),或者如果您已经定义了像 ANT_HOME 这样的环境变量,那么复制
tools.jar
来自 C:\Program Files\Java\jdk1.6.0_22\lib\
的文件至 ANT_HOME\lib
.
另请查看之前的 SO 帖子 ( Ant can't find Javac. No matter what I do it always claims JAVA_HOME is "C:\Program Files\Java\jre6" )
更新 2 好的.. 检查此页面... http://ant.apache.org/ivy/ivyde/history/latest-milestone/preferences.html
Order of the classpath entries: By default, the classpath container entries are ordered by order of declaration in the ivy.xml. When there are many entries, it can be useful to have them ordered lexically for enhanced readability.
是tools.jar
出现在 ivy.xml
?请检查一次。
关于java - 如何为 Ivy/Ant 指定 Eclipse 的 java.home 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4300416/