关于
tools.jar,我有以下经验:当下载 ant 时,它附带了开放式 Java 7。然而,我下载的系统使用的是 Java 8 u 40 (
Oracle 版本)。因此,当我通过 Linux 中的软链接将 lib/jre 指向
tools.jar 的位置时,我收到了错误提示,说现在版本/子版本不匹配。这是因为 ant 使用的是版本 7,而来自
Oracle 的 tools.jar 现在是版本 8。
解决方案是使用上述帮助(将 JAVA_PATH 设置为我的 Java 版本 8u40 的
Oracle),这样编译器和
tools.jar 文件就是相同版本。
因此,我所处的情景是:jdk 下载到了我 /home/david/Desktop/Android5.0/jdk1.8.0u40 目录中,Android 包下载到了 /home/david/Desktop/Android5.0 目录中,我的 Eclipse 工作区在 /home/david/workspace 中,现在我希望一切顺利。
ant 文件 build.xml 放置在我的 /home/david/workspace 目录中,并且看起来像这样:
<project>
<target name="clean">
<delete dir="build"/>
</target>
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="build/jar"/>
<jar destfile="build/jar/HelloWorld.jar" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="oata.HelloWorld"/>
</manifest>
</jar>
</target>
<target name="run" depends="jar">
<java jar="build/jar/HelloWorld.jar" fork="true"/>
</target>
</project>
这个问题中的java文件 - HelloWorld.java,被放置在目录/home/david/workspace/build/src/oata中,并且现在它已经编译到了你可以看到的目的地,然后从那里构建jar文件。
确实,有一些方法可以让一个Java版本假装成另一个版本 - 但我不想这样做,因为我正在设置一个构建环境,在那里我可以从仓库中提取、构建和存储构建代码到下载站点。
上面的build.xml示例略有修改,来自以下Ant构建教程:
https://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html
希望对你们也有用,因为ant确实是构建的最佳方式之一,你可以从命令行调用它,你可以让它首先从仓库中选择文件(如GitHub或BitBucket等),然后你可以将编译结果FTP到开发人员喜欢的下载站点,你可以将代码压缩在一起,以便在最坏的情况下你已经准备好并压缩了版本...