命令行打包:
首先生成.class文件
javac -cp D:\adt-b
undle-windows-x86-20140702\adt-bundle-windows-x86-20140702\sdk\platforms\android
-20\android.jar ./ToastUtil.java
-cp引入你需要的jar。一般情况下,你会需要android.jar
ToastUtil.java是将此java文件打为class文件。
第二步,生成jar文件
jar cvf ToastUtil.jar ToastUtil.class 则生成了jar文件。
解压缩,看一下jar里边的结构:
Javac和jar还有很多可扩展的,这里就不一一介绍了,我们将重点放在ant上。逼格更高么。
Ant first demo
<?xml version="1.0"encoding="UTF-8" ?> <!-- 中的第一句话,没有实际的意义 -->
<project name="HelloWorld"default="run" basedir="."> <!-- ant的所有内容必须包含在这个里边,name是你给它取的名字,basedir故名思意就是工作的根目录 .代表当前目录。default代表默认要做的事情。 -->
<!-- 变量,跟编程语言里边的变量一样 -->
<property name="src"value="src"/>
<property name="dest"value="classes"/>
<property name="hello_jar"value="hello1.jar"/>
<!-- 新建一个src的文件夹,然后把HelloWorld.java按照包目录放进去 -->
<target name="init">
<mkdir dir="${dest}"/>
</target>
<!-- 编译 -->
<target name="compile"depends="init">
<javac srcdir="${src}" destdir="${dest}"/>
</target>
<!-- 构建jar -->
<target name="build"depends="compile">
<jar jarfile="${hello_jar}" basedir="${dest}"/>
</target>
<!-- 运行 -->
<target name="run"depends="build">
<java classname="test.ant.HelloWorld" classpath="${hello_jar}"/>
</target>
<!-- clean 删掉上次构建生成的文件 -->
<target name="clean">
<delete dir="${dest}" />
<delete file="${hello_jar}" />
</target>
<!-- 重新生成 -->
<target name="rerun"depends="clean,run">
<ant target="clean" />
<ant target="run" />
</target>
</project>
工程目录:
打包结果:(解压缩之后:)
把第三方jar包打入到工程里边来,进行run的时候,可以执行.
如果被另外一个工程引入,但该工程并没有引入jar引入的jar包,则会报nocalldeffonderror的bug.很奇怪.