简体   繁体   English

Ant中的“运行Javac编译器时出错”

[英]“Error running javac compiler” in Ant

I was trying to run an Ant script in Eclipse, but I am getting the below error: 我试图在Eclipse中运行Ant脚本,但出现以下错误:

BUILD FAILED 建立失败

C:\\Users\\name\\workspace\\Client\\build\\Build_Local.xml:111: Error running C:\\Program Files\\Java\\jdk1.6.0_45\\jre\\bin\\javac compiler. C:\\ Users \\ name \\ workspace \\ Client \\ build \\ Build_Local.xml:111:运行C:\\ Program Files \\ Java \\ jdk1.6.0_45 \\ jre \\ bin \\ javac编译器时出错。

My java home is pointed to jdk and I edited the java path in windows>preferences>installed jre as well as in run>external tool>config>jre . 我的Java主页指向jdk,我在windows> preferences>已安装的jre以及run> external tool> config> jre中编辑了Java路径。 Both locations are pointed to jdk. 两个位置都指向jdk。 Also I am posting my build file(This is not the exact file, I have edited a lot before posting) 我也在发布我的构建文件(这不是确切的文件,发布之前我做了很多编辑)

<?xml version="1.0"?>
<project name="projectName" default="main" basedir="C:\path\build">
<property name="LocalHome" value="C:\proName" />
<property name="home" value="${LocalHome}"/>
<property name="java.home" value="C:\Program Files \Java\jdk1.6.0_45"/>
<property name="CLIENT_JAR" value="client.jar"/>

<target name="main" description=": This is the default target.">
    <antcall target="name"/>
</target>

<target name="name">
    <javac failonerror="true" srcdir="${home}/source" destdir="path to class file"
           executable="${java.home}\bin\javac" fork="true"  debug="on" encoding="UTF-8"
           source="1.6" target="1.6" bootclasspath="${java.home}/jre/lib/rt.jar"
           classpath=""/>
</project>

See here I mentioned the javac path to "C:\\Program Files \\Java\\jdk1.6.0_45\\bin\\javac". 看到这里我提到了“ C:\\ Program Files \\ Java \\ jdk1.6.0_45 \\ bin \\ javac”的javac路径。 Then why does Ant choose javac from C:\\Program Files\\Java\\jdk1.6.0_45\\jre\\bin\\javac (see the build error) 那么为什么Ant会从C:\\ Program Files \\ Java \\ jdk1.6.0_45 \\ jre \\ bin \\ javac中选择javac (请参阅构建错误)

当我直接使用java home home位置(C:\\ Program Files \\ Java \\ jdk1.6.0_45)代替java.home时,它起作用

${java.home} points to C:\\Program Files\\Java\\jdk1.6.0_45\\ jre . ${java.home}指向C:\\ Program Files \\ Java \\ jdk1.6.0_45 \\ jre So you should be able to just remove that from bootclasspath : 因此,您应该能够将其从bootclasspath删除:

bootclasspath="${java.home}/lib/rt.jar"

If you put the following line below a target, you'll see it print out the full path with jre appended: 如果将以下行放在目标下方,您会看到它打印出完整路径并附加了jre

<echo level="info" message="java.home = ${java.home}"/>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM