android引用的java包_Android开发中jar包的创建及引用
jar包有兩種,一種是純粹的庫功能,沒有main入口函數(shù),故無法直接執(zhí)行;一種是包含main的可執(zhí)行包!
如有hello/hello.java文件:
$ cd hello/$ javac hello.java$ java Hello (Hello為類名,如果Hello類具有main函數(shù)的話,可以這么執(zhí)行)
第一種jar包命令:
jar cvf hello.jar hello
或者
$ jar cvf hello.jar hello/*.class
通過如下命令查看兩個jar的內(nèi)容:
$ jar tf hello.jarMETA-INF/META-INF/MANIFEST.MFhello/hello/hello.class
顯示結(jié)果是一樣的。
對于第二種可執(zhí)行jar包,方法其實可以跟第一種一樣,然后再修改MANIFEST.MF文件。
在MANIFEST.MF文件中只需要添加一行:
Main-Class: 可執(zhí)行主類全名(即包含main函數(shù)的類名稱)
即可。
但也可以預(yù)先創(chuàng)建MANIFEST.MF文件,內(nèi)容跟上面一樣,讓該文件與hello目錄保持在同一級,然后:
$ jar cvfm hello.jar MANIFEST.MF hello
然后就可以通過:
$ java -jar hello.jar
運行了。
===================
在實際項目中,可能需要很多個類文件,建議每個類文件均放到一個獨立的文件之中,文件名與該類名應(yīng)一致,類的聲明為“public class xxx”(當(dāng)然也可以將很多個類放到同一個文件中,但只有一個類能聲明成public(即與文件名一致的那個類),這將導(dǎo)致其它未聲明為public的類 無法為其它程序調(diào)用)。
比如有兩個位于同一目錄的類文件(它們之間有調(diào)用關(guān)系),將會被打包成sp_sdk.jar作為庫文件使用,文件目錄關(guān)系如下:
$ ls -l sp/android/printer-rw-r--r-- 1 zwang zwang ?944 2011-06-25 17:52 FontProperty.class-rw-r--r-- 1 zwang zwang 1319 2011-06-25 17:51 FontProperty.java-rw-r--r-- 1 zwang zwang 5498 2011-06-25 17:53 PrintGraphics.class-rw-r--r-- 1 zwang zwang 5751 2011-06-25 17:51 PrintGraphics.java
各個java文件的開頭需要聲明如下(否則其它文件無法import這兩個類):
package sp.android.printer;
然后編譯命令是:
$ javac sp/android/printer/FontProperty.java $ javac sp/android/printer/PrintGraphics.java
注意編譯的位置,因為各自已經(jīng)聲明了“package sp.android.printer;”,所以直接進(jìn)入到sp/android/printer/目錄下是編譯不過的。
然后生成jar文件:
$ tar cvf sp_sdk.jar sp
然后就可以創(chuàng)建測試程序調(diào)用該庫了(測試程序里面就可以“import sp.android.printer.*”了)。
假如測試程序test.java與sp_sdk.jar同一目錄,編譯及運行命令:
$ javac test.java$ java Test
如果不在同一目錄,編譯及運行命令:
$ javac -classpath .:/path/to/sp_sdk.jar test.java$ java -cp .:/path/to/sp_sdk.jar Test
最后總結(jié)一下,android平臺為我們開發(fā)提供了極大的便利這里給大家展示的只是冰山一角,我們可以盡情的發(fā)揮想象,創(chuàng)造我們自己的功能
總結(jié)
以上是生活随笔為你收集整理的android引用的java包_Android开发中jar包的创建及引用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中运算类型_Java数据类型及运
- 下一篇: android+app+wifi+控制+