Java如何实现将类文件打包为jar包
将类文件打包为jar包
为实际项目写了一个工具类,但是每次使用时都需要打开项目点击运行。突然想,不如将这个类打成jar包这样后续就可以直接运行了。
说做就做。
1.写类文件

大概就这么个样子。
注意,这里用到了外部依赖,也就是为什么要写这篇文章的原因。
本例中的外部依赖包为:commons-codec-1.14.jar
2.编译
javac -encoding UTF-8 -classpath .;./commons-codec-1.14.jar -d . CipherTest.java
或者:
javac -encoding UTF-8 -cp .;./commons-codec-1.14.jar -d . CipherTest.java
- encoding 防止中文乱码
- -classpath 指定class文件路径
- -d . 会在当前执行目录下生成 一个java所在的包名的(这里我的是test)目录,以及编译后的class文件
- 指定要被编译的java文件
这样就编译为class文件了
3.测试
java -cp .;commons-codec-1.14.jar CipherTest 11 22 33
- -cp 指定依赖包,多个用;分割
- CipherTest: 是运行的主类,后面跟着命令行参数
这样测试就通过了。
4.打jar包
jar -cvf cipher.jar CipherTest.class
执行运行,发现找不到主类。解压查看jar包内容如下:

进入META-INF查看文件:

接下来对这个文件进行处理:
添加字段:

添加:
Main-Class: CipherTest
注意冒号后面有个空格,这个是指定主类,即启动类。
Class-Path: commons-codec-1.14.jar
指定依赖包,默认jar包根目录,有多个依赖的话,Windows用;分隔。Linux用空格分隔。
之后将依赖包拖入jar包。
最终目录结构:

最后运行jar包,正常工作。
jar包应该怎么打?
1.首先确保你的项目
能正常启动并运行
2.选中你的项目,点右键
选export(导出),如下图:

3.选择runnable jar file
下一步,如下图:

4.如下图,直接看图

5.然后点finish
后面一路过,不用管警告,一直点OK!
执行完这5步,在自己上面选择的路径下面就会有相应的jar包生成,如下图:

下面,我们来详细说明一下两种打jar包的方式有什么区别
首先,用自己的压缩工具打开刚才打成的jar包,可以看到一个MANIFEST.MF文件,如下图:

打开它之后的部分信息如下:

可以看到,这种方式把引用的jar包和自己的jar包都混合到了一起!(把需要的jar包和库提取到jar里)
再看另一种方式:

这种方式打成jar包后如下图:(将需要的jar包和库提取到子目录中)

两种方式都能正常启动,只是方式不一样!!!


以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Java中redisTemplate注入失败NullPointerException异常问题解决
这篇文章主要介绍了Java中redisTemplate注入失败NullPointerException异常问题解决,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2023-08-08
SpringBoot整合Liquibase实现对数据库管理和迁移
Liquibase是一个用于用于跟踪、管理和应用数据库变化的开源工具,通过日志文件(changelog)的形式记录数据库的变更(changeset),然后执行日志文件中的修改,将数据库更新或回滚(rollback)到一致的状态,本文主要介绍SpringBoot与Liquibase的集成,需要的朋友可以参考下2024-11-11
从最基本的Java工程搭建SpringMVC+SpringDataJPA+Hibernate
本文会介绍从一个最基本的java工程,到Web工程,到集成Spring、SpringMVC、SpringDataJPA+Hibernate,本文介绍的非常详细,具有参考借鉴价值,感兴趣的朋友一起学习吧2016-05-05
Java实现的各种排序算法(插入排序、选择排序算法、冒泡排序算法)
本文是小编给大家带来的java各种排序算法知识,包括插入排序、选择排序算法、冒泡排序算法,代码简单易懂,需要的朋友可以参考下2016-08-08
springboot maven plugin报红的解决办法
本文主要介绍了springboot maven plugin报红的解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-07-07


最新评论