手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

mac下ant打包指定具体的JDK

时间:2024-11-14 17:32:11

1、我电脑上有三套JDK,jdk1.6 1.7 1.8,如图;ant版本是ant 1.10.1(使用macPort更新的最新版本)

mac下ant打包指定具体的JDK
mac下ant打包指定具体的JDK

2、修改JAVA_HOME环境变量为jdk1.7,结果连ant --version都不支持,要求不能低于jdk1.8

mac下ant打包指定具体的JDK
mac下ant打包指定具体的JDK

3、所以,通过修改系统环境变量的方式,修改JDK版本无效。恢复JDK1.8;

mac下ant打包指定具体的JDK
mac下ant打包指定具体的JDK

4、通过查找资料,尤其是ant的官方资料,得知可以通过设置fork和executable设置javac的位置指定某一个javac编译器。执行成功,应该是使用了JDK1.7,之前经过反复测试,executable参数必须指定到本人机器上的jdk1.7/bin/javac程序。可以通过查看编译后的.class文件查看效果。 这里的33是十六进制=51也就是JDK1.7, 成功!

mac下ant打包指定具体的JDK
mac下ant打包指定具体的JDK

5、由于ant有多个打包任务,所以将fork和executable设置为property,以便多次使用。(如果设置fork ='no',则使用本机的环境变量。)

6、上面这种方式比较灵活,可以指定任意的JDK,但是需要每个人都要制定自己机器的环境。通过指定java的target也可以指定jdk

7、这里是使用source的效果,这里没有同时设置source会有警告。需要和target保持一直。但这样反而不提示了。同理打开一个class文件查看效果:这里的32是十六进制=51也就是JDK1.6, 成功!但这里并没有指定jdk的位置,所以应该是ant自己可以调整编译JDK。

mac下ant打包指定具体的JDK
mac下ant打包指定具体的JDK
mac下ant打包指定具体的JDK

8、如果同时指定source,target,fork和executable效果会如何呢,这里也测试了一下,结果是source优先,系统显示使用了jdk1.6!!!

9、所以就让我们愉快的使用source和target吧~~

© 手抄报圈