com*_*ose 31 java ant environment-variables
我正在尝试按照有关如何使用ant构建和运行应用程序的教程.我已经按照所有步骤创建了构建文件,但是当我尝试运行ant时,它给了我这个错误.
BUILD FAILED /home/bilal/tmp/ant/build.xml:19:找不到javac编译器; com.sun.tools.javac.Main不在类路径上.也许JAVA_HOME并没有指向JDK.它目前设置为"/ usr/lib/jvm/java-6-openjdk/jre"
有任何想法如何解决这个问题?
Nim*_*sky 33
使JAVA_HOME变量指向jdk安装,而不是jre.
您正在引用运行时环境,而不是开发工具包 - 它找不到编译器,因为它不在那里.
从你发布的那一行开始,你知道你有open-jdk,你可以在结尾删除jre:
export JAVA_HOME='/usr/lib/jvm/java-6-openjdk/'
Run Code Online (Sandbox Code Playgroud)
小智 24
你安装了java ...
apt-get install default-jre
Run Code Online (Sandbox Code Playgroud)
但不是JDK ......
apt-get install default-jdk
Run Code Online (Sandbox Code Playgroud)
ing*_*ere 13
这是设计的.您不能将OS java.home(可以是java.lang.System属性)与JAVA_HOMEOS环境中的设置方式互换使用.您可能尝试使用来自不同属性层的基本不同的值来断言Java编译器的位置 - 即java.home(来自Ant的Java内部)指向Java运行时环境,<any_installed_java_pointed_to_by_ant>/jre而JDK_HOME(来自OS环境)是通常设置为<DOWNLOADED_AND_INSTALLED_JAVA_DEVELOPMENT_KIT>.
有关更多详细信息,请参阅我的问题和答案:Ant在哪里设置'java.home'(并且它是错误的)并且它应该附加'/ jre'吗?
解决方案是使用使用Ant访问Ant中的系统环境属性${env.JAVA_HOME}.通过将executable属性设置为javac路径并将fork属性设置为yes 来指定在Javac任务中显式使用的Java (请参阅Ant的Javac任务文档).这样,在内部运行的Java环境Ant无关紧要,编译器总是被明确指定!
我知道这个问题很旧,但是已被接受的答案不再起作用,并且由于这是Google搜索的第一手链接,我将告诉我如何解决此问题。
使用ubuntu进行蚀:
转到“窗口”->“首选项”->“蚂蚁”->“运行时”->“选择Ant_Home_Entries”,然后单击“添加外部jar”,然后在文件资源管理器中找到您的jdk(默认位于/ usr / lib / jvm /中)以及您的lib文件夹中在jdk中,您将找到tool.jar。选择此选项,然后单击“应用”。
尝试构建您的项目,一切都会正常!
注意:我很久没有使用过ant了,但是如果有人被困在ycsb benchbase工作负载生成器(http://www.couchbase.com/wiki/display/couchbase/Load+Generator+Setup)上,则需要使用它。这个。