java中jar包的生成与使用方式
jar包的生成与使用
什么是jar包?
JAR文件的全称是Java Archive File,意思是Java档案文件。
是一种压缩文件,与常见的ZIP压缩文件兼容。
两者最大的区别是在JAR文件中默认包含一个名为META-INF/MANIFEST.MF的清单文件,这个文件是生成JAR文件时由系统自动创建的。
使用jar包的好处
- 安全,可以对其进行数字签名,只让能够识别数字签名的用户使用里面的东西。
- 加快下载速度;
- 压缩,使文件变小,与ZIP压缩机制完全相同。
- 包封装。能够让JAR包里面的文件依赖于统一版本的类文件。
- 可移植性,能够在各种平台上直接使用。
- 把一个JAR文件添加到系统的classpath环境变量之后,java通常会把这个JAR文件当做一个路径来处理。通常使用jar命令来压缩,可以把一个或多个路径全部压缩成一个JAR文件。
什么情况下使用jar包?
当开发一个应用程序后这个应用程序包含了很多类,如果需要把这个程序提供给别人使用,通常会将这些类文件打包成一个JAR文件,把这个文件提供给别人使用。
只要在别人系统的CLASSPATH环境变量中添加这个文件,则java虚拟机就可以自动在内存中解压这个jar包。
可以使用命令来创建也可以再编译器中创建
在编译器中创建
在这里选择带有主方法的类,点击OK;如果要打包普通的类,即没有带主方法,在这里不用选直接进行下一步点击OK
操作成功后可以在以下目录查看到生成的jar包
如何使用jar包
将生成的jar复制到想用的地方。
如复制到桌面上,然后打开命令窗口执行 java -jar jar包名
如果想在另一个工程中使用:
将刚才的jar包添加进新建的目录
添加进依赖
用命令创建
jar命令详解
jar cf test.jar test
不显示压缩过程将当前路径下的test路径下的全部内容生成一个test.jar文件,如果已经存在则被覆盖。jar cvf test.jar test
显示压缩过程;jar cvfM test.jar test
不生成清单文件;jar cvfm test.jar manifest.mf test
自定义清单文件信息,m指定读取用户清单信息。清单文件是普通文本文件。jar cvfm test.jar a.txt test
将清单文件中的key-value对提取到META-INF/MANIFEST.MF文件中。jar tf test.jar
查看jar包内容;jar tf test.jar > a.txt
:如果jar包中的文件路径和文件非常多,用上一个命令就无法查看所有,所以用重定向将显示结果保存到文件中。jar tvf test.jar
:查看详细内容;jar xf test.jar
解压,将jar文件解压到当前目录下;jar xvf test.jar
解压,显示解压过程的信息;jar uf test.jar Hello.class
:更新test.jar中的Hello.jar文件,如果存在则覆盖,否则添加;jar uvf test.jar Hello.class
:更新时显示详细信息;
创建可用jar包
jar命令-e选项,该选项指定JAR包中作为程序入口的主类的类名。
jar cvfe test.jar test.Test test
上面的命令把test目录下的所有文件都压缩到test.jar包中,并指定使用test.Test类作为程序入口。
运行上面JAR包有两种方式:
java -jar test.jar
javaw test.jar
当创建JAR包时,所有类都必须放在与包结构对应的目录结构中。
就像上面-e选项指定的Test类,表明入口类为Test类。
因此在JAR包下包含Test.class文件。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Eclipse下使用ANT编译提示OutOfMemory的解决方法
由于需要使用ANT编译的代码比较多,特别是在第一次变异的时候,会出现OutOfMemory错误。并提示更改ANT_OPTS设定。2009-04-04利用Intellij Idea连接远程服务器实现远程上传部署功能
大家在使用Intellij Idea开发程序的时候,是不是需要部署到远程SSH服务器运行呢,当然也可以直接在idea软件内容实现配置部署操作,接下来通过本文给大家分享利用Intellij Idea连接远程服务器实现远程上传部署功能,感兴趣的朋友跟随小编一起看看吧2021-05-05springboot @validated List校验失效问题
这篇文章主要介绍了springboot @validated List校验失效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-07-07解决SpringBoot ClassPathResource的大坑(FileNotFoundException)
这篇文章主要介绍了解决SpringBoot ClassPathResource的大坑(FileNotFoundException),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-06-06
最新评论