如何制作Jar包并在android中调用jar包
3个回答
展开全部
千锋扣丁学堂Android开发学习为您解答:
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
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
2018-07-29 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
在android中调用jar包的方法:
1,右键工程, Build path, java build path,
2,选择libraries在右边的按钮中点击“Add Library”
3,选择“User library”,点击“下一步”
4,点击“User librarys”按钮在出现的界面中点击“New..”按钮
在弹出的界面中随便起一个名字,点击“确定”
5,点击“Add jars”按钮选择第三方jar包,
1,右键工程, Build path, java build path,
2,选择libraries在右边的按钮中点击“Add Library”
3,选择“User library”,点击“下一步”
4,点击“User librarys”按钮在出现的界面中点击“New..”按钮
在弹出的界面中随便起一个名字,点击“确定”
5,点击“Add jars”按钮选择第三方jar包,
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-04-12 · 百度知道合伙人官方认证企业
兄弟连教育
兄弟连教育成立于2006年,11年来专注IT职业教育,是国内专业的IT技术培训学校。2016年成功挂牌新三板(股票代码:839467)市值过亿。开设专注程序员培训专注php、Java、UI、云计算、Python、HTML5、
向TA提问
关注
展开全部
导出:如果是eclipse的话,右键项目,选择export,选择java下的jar file
使用:将jar文件放到项目的libs目录下
如果2个项目都是你自己开发的,为了快捷开发,你不需要每次都导出的。
1.假设项目a是要导出jar的项目,你将a项目设置成lib属性:右键-》properties->android 将is library勾选上
2.假设项目b是要使用项目a的jar包的项目,你让b引用的项目a即可:右键-》properties->android-》add选择你的项目a
使用:将jar文件放到项目的libs目录下
如果2个项目都是你自己开发的,为了快捷开发,你不需要每次都导出的。
1.假设项目a是要导出jar的项目,你将a项目设置成lib属性:右键-》properties->android 将is library勾选上
2.假设项目b是要使用项目a的jar包的项目,你让b引用的项目a即可:右键-》properties->android-》add选择你的项目a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询