我正在使用Ant 1.7.0并安装了JAVA_HOME中的java 1.6.
我想用java 1.5构建一个项目,所以我将JAVA_HOME导出为我的java 1.5目录.
java -version
Run Code Online (Sandbox Code Playgroud)
说"1.5".当我运行Ant时,它使用java 1.6.
Lee*_*ski 71
刚出现这个问题,发生这种情况是因为当默认JRE为1.6时,我首先将构建文件添加到ant-view.
没有项目特定的JRE,我将默认值更改为1.5,即使eclipse在1.5中运行,JAVA_HOME也是1.5.从命令行运行ant目标使用JRE 1.5,但在eclipse中它仍然使用1.6.
我必须右键单击ant目标,选择Run As ...并在JRE选项卡下更改JRE.后续运行会记住此设置.
sim*_*n_d 15
您可以使用javac标记上的target和source属性来设置目标运行时.下面的示例将在任何支持1.4或更高版本的编译器上编译任何源代码,以针对1.4版本.
<javac compiler="classic" taskname="javac" includeAntRuntime="no" fork=" deprecation="true" target="1.4" source="1.4" srcdir="${src}" destdir="${classes}">
Run Code Online (Sandbox Code Playgroud)
注意:'srcdir'和'destdir'是在构建脚本中设置的其他属性值,例如 <property name="classes" value="c:/classes" />
小智 10
如果您使用的是Eclipse IDE,则可以通过以下步骤实现:
右键单击ant构建文件中的任务(build.xml).
将鼠标悬停在"运行方式"上,单击"外部工具配置...".
在"参数"中添加以下内容:
-Dant.build.javac.target=1.5 -Dant.build.javac.source=1.5
Run Code Online (Sandbox Code Playgroud)小智 6
构建文件:
<target name="print-version">
<echo>Java/JVM version: ${ant.java.version}</echo>
<echo>Java/JVM detail version: ${java.version}</echo>
</target>
Run Code Online (Sandbox Code Playgroud)
输出:
[echo] Java/JVM version: 1.5
[echo] Java/JVM detail version: 1.5.0_08
Run Code Online (Sandbox Code Playgroud)
这是一个很老的问题,但我会添加我的笔记以供将来参考.
我有一个类似的问题,并通过更改PATH变量中的导出顺序来修复它.
例如,我正在使用一种方法将字符串连接到我的PATH(这只是一个例子):
$> export PATH='$PATH:'$JAVA_HOME
Run Code Online (Sandbox Code Playgroud)
如果我的变量PATH中已经有一个java,那么最后一个值将毫无意义,因此顺序很重要.为了解决这个问题,我开始通过首先添加变量,然后添加PATH来反转它.
按照这个想法,我颠倒了ANT_HOME被导出的顺序.在ANT_HOME之前添加JAVA_HOME.
这可能只是巧合,但它对我有用.
| 归档时间: |
|
| 查看次数: |
146975 次 |
| 最近记录: |