如何制作Jar包并在android中调用jar包
1个回答
2016-10-16 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
jar包有两种,一种是纯粹的库功能,没有main入口函数,故无法直接执行;一种是包含main的可执行包! 如有hello/hello.java文件: $ cd hello/$ javac hello.java$ java Hello (Hello为类名,如果Hello类具有main函数的话,可以这么执行) 第一种jar包命令: jar cvf hello.jar hello 或者 $ jar cvf hello.jar hello/*.class 通过如下命令查看两个jar的内容: $ jar tf hello.jarMETA-INF/META-INF/MANIFEST.MFhello/hello/hello.class 显示结果是一样的。 对于第二种可执行jar包,方法其实可以跟第一种一样,然后再修改MANIFEST.MF文件。 在MANIFEST.MF文件中只需要添加一行: Main-Class: 可执行主类全名(即包含main函数的类名称) 即可。 但也可以预先创建MANIFEST.MF文件,内容跟上面一样,让该文件与hello目录保持在同一级,然后: $ jar cvfm hello.jar MANIFEST.MF hello 然后就可以通过: $ java -jar hello.jar 运行了。 =================== 在实际项目中,可能需要很多个类文件,建议每个类文件均放到一个独立的文件之中,文件名与该类名应一致,类的声明为“public class xxx”(当然也可以将很多个类放到同一个文件中,但只有一个类能声明成public(即与文件名一致的那个类),这将导致其它未声明为public的类 无法为其它程序调用)。 比如有两个位于同一目录的类文件(它们之间有调用关系),将会被打包成sp_sdk.jar作为库文件使用,文件目录关系如下: $ 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 注意编译的位置,因为各自已经声明了“package sp.android.printer;”,所以直接进入到sp/android/printer/目录下是编译不过的。 然后生成jar文件: $ tar cvf sp_sdk.jar sp 然后就可以创建测试程序调用该库了(测试程序里面就可以“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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询