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

最后总结一下,android平台为我们开发提供了极大的便利这里给大家展示的只是冰山一角,我们可以尽情的发挥想象,创造我们自己的功能

android引用的java包_Android开发中jar包的创建及引用相关推荐

  1. java开发常用jar包_java开发常用jar包

    mail.jar与activation.jar 里面包含了activation.jar和mail.jar两个包.通过里面的类的调用便可以达到发送电子邮件的目的 commons-beanutils.ja ...

  2. 确定Java开发中.jar包的JDK版本

    1.查看.jar包中的META-INF\MANIFEST.MF 使用winrar等压缩软件打开.jar包,查看META-INF\MANIFEST.MF中的内容,Build-Jdk属性就是JDK的版本, ...

  3. android 开启一个定时线程_ANDROID开发中定时器的3种方法

    在android中,经常用到的定时器主要有以下几种实现: 一.采用Handler与线程的sleep(long )方法 二.采用Handler的postDelayed(Runnable, long) 方 ...

  4. java jar包和war包_java中jar包和war包之间有什么区别

    原标题:java中jar包和war包之间有什么区别 jar包 简单地说,JAR(Java Archive)是一种包文件格式.JAR文件具有.jar扩展名,可以包含库.资源和元数据文件. 本质上,它是一 ...

  5. java class修改_【原创】Java基础之简单修改jar包中的class

    有时需要修改很多jar(假设这些jar都位于lib目录)中其中一个jar中的某一个类,而且又没有原始代码或ide,这时最简单的方式是: 1 进入lib目录 #cd lib#ls test.jar de ...

  6. ARCGIS开发中类型XXX在未被引用的程序集中定义的解决办法

    ARCGIS开发中类型XXX在未被引用的程序集中定义的解决办法 分类: ArcGIS ARCGIS开发中出现了这样的错误:类型"ESRI.ArcGIS.DataSourcesRaster.I ...

  7. Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(

    2019独角兽企业重金招聘Python工程师标准>>> 在Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(百搜技术) 在Java ME游戏开发中,经常需要进行碰撞检测 ...

  8. delay在java中有什么用_DelayQueue怎么在Java多线程并发开发中使用

    DelayQueue怎么在Java多线程并发开发中使用 发布时间:2020-12-05 17:29:31 来源:亿速云 阅读:56 作者:Leah 这篇文章给大家介绍DelayQueue怎么在Java ...

  9. Android事件分发机制在实战开发中的应用之一

    学习的最终目标就是要学以致用,本文所分享的案例都是自己在公司实战开发过程中的真实案例,现在把它分享出来,希望对初学者有所帮助 版权声明:本文来自门心叼龙的博客,属于原创内容,转载请注明出处:https ...

最新文章

  1. lazyload.js实现图片异步延迟加载
  2. 【LInux】查看Linux系统版本信息
  3. C# HashTable的用法总结
  4. 配置kickstart脚本--图形篇
  5. mongodb java crud_MongoDB用Java,简单的CRUD操作,两种方法,附源码下载。
  6. 腾讯产品面试题 | 如何把剃须刀卖给张飞?
  7. C指针原理(5)-ATT汇编
  8. php代码文字中怎么换行符,如何在imagestring(php中的文本到图像)中添加换行符(br)...
  9. 1431. Kids With the Greatest Number of Candies
  10. python multiprocessing 和tcp
  11. 安卓开发经常闪退的原因及解决方法
  12. I,P,B帧和PTS,DTS的关系,GOP相关
  13. php 验证手机号码(海外手机号)
  14. Java——数据结构与算法
  15. VueDemo-12.加入购物车
  16. Ubuntu linux ls 看到目录文件夹绿色高亮问题
  17. Java集合(一):集合的概念
  18. WIN10下用anaconda安装tensorflow-gpu1.8.0并用pycharm作编译器(WIN10下anaconda+tensorflow-gpu+pycharm)
  19. 网络工程师眼中的自动化运维
  20. 使用SmartUpload组件上传文件,自己踩过的坑

热门文章

  1. mysqlhotcopy 热备工具体验与总结
  2. TCP:SEQ号与ACK号
  3. 如何解决Http请求参数中加号变空格问题
  4. 使用Python进行科学计算:NumPy入门
  5. Java多线程详解[狂神说Java]
  6. 计算机科学与技术第二章ppt,计算机科学与技术-编译原理-第二章重点.ppt
  7. python中如果要多次输入文本,关于文本游戏:文本游戏 – 如果语句基于输入文本 – Python...
  8. c语言adc采集取平均值,读取ADC值的浮动平均值
  9. java arraycollection_Java集合(三)--Collection、Collections和Arrays
  10. 项目背景介绍及文件系统基本概念简介