吉林城市建设学校网站,wordpress怎么导入自己的php,佛山建网站,国外网站域名文章目录1.背景2.操作步骤2.1. 准备好java源文件2.2 确认java源文件中是否有包名2.3 编译java文件2.4 初步打包2.5 解压jar包#xff0c;得到MANIFEST.MF文件2.6 修改MANIFEST.MF文件2.7 再次打包3.验证4.打包参数参考5.参考文章1.背景
今天#xff0c;无意中翻出了N年之前年…
文章目录1.背景2.操作步骤2.1. 准备好java源文件2.2 确认java源文件中是否有包名2.3 编译java文件2.4 初步打包2.5 解压jar包得到MANIFEST.MF文件2.6 修改MANIFEST.MF文件2.7 再次打包3.验证4.打包参数参考5.参考文章1.背景
今天无意中翻出了N年之前年少青涩时写的一个java awt的程序在想验证某个问题的时候希望它能以jar包的形式独立运行而不是在ide中运行。所以就想把它手动打成可执行jar包。
2.操作步骤
2.1. 准备好java源文件
例如Hello.java
2.2 确认java源文件中是否有包名
源代码中有无包名后面的操作有些许不同注意区别。
2.3 编译java文件
进入test目录执行如下命令生成class文件
java Hello.java2.4 初步打包
进入test目录执行如下命令初步生成jar文件,如果有多个class文件则在命令最后加空格追加就可以
jar -cvf Hello.jar Hello.class如果提示jar命令不存在可以参考此篇文章解决执行jar命令报错jar不是内部或外部命令,也不是可运行的程序
2.5 解压jar包得到MANIFEST.MF文件
执行如下命令在class文件同级目录会生成一个META-INF目录里面有一个MANIFEST.MF文件。
jar -xvf Hello.jar2.6 修改MANIFEST.MF文件
使用文件编辑器打开MANIFEST.MF文件添加Main-Class内容 Hello.java里不带包名
Manifest-Version: 1.0
Created-By: 11.0.10 (Oracle Corporation)
Main-Class: HelloHello.java里带包名
Manifest-Version: 1.0
Created-By: 11.0.10 (Oracle Corporation)
Main-Class: test.Hello修改完毕后记得保存。
2.7 再次打包
再次使用jar命令进行打包这里同样要注意源代码中有无包名方法有所区别。
#Hello.java里不带包名,在java文件同目录执行
jar -cvfm Hello.jar META-INF/MANIFEST.MF Hello.class #Hello.java里带包名在包名目录同级目录执行
jar -cvfm Hello.jar test/META-INF/MANIFEST.MF test/Hello.class3.验证
使用java -jar Hello.jar或者直接双击jar包能正常运行代表打包成功。
4.打包参数参考
-c 创建一个jar包
-t 显示jar中的内容列表
-x 解压jar包
-u 添加文件到jar包中
-f 指定jar包的文件名
-v 输出详细报告
-m 指定MANIFEST.MF文件
-0 生成jar包时不压缩内容
-M 不生成清单文件MANIFEST.MF
-i 为指定的jar文件创建索引文件
-C 可在相应的目录下执行命令5.参考文章
Java打包成jar包