如何使用命令行编译和生成可执行jar包
为什么要使用jar
包
jar文件的全称是Java Archive File
,是 Java 的一种文档格式,它非常类似 ZIP 文件——准确的说,它的编码方式和 ZIP 文件完全一致,所以也叫它jar文件包。
JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。
总之,如果你不想丢给别人一堆编译出来的class拿去运行,打包成jar文件就对了
准备工作
- 首先是一份可以执行的
.java
源码 - 其次,你的电脑总得有配好环境变量的
jdk
工具链吧
准备好了这些,就可以准备开始了
1. 编译.java
源码
使用javac -encoding <源文件编码> <源文件名>
将你的.java源码编译为class文件,如果源文件有多个,记得加上多文件编译选项
这里以我工程目录下Test
包内test.java
为例,执行javac -encoding UTF-8 test.java
会产生一个或多个.class
文件(内部类会单独编译出.claa
文件)
2. 创建与包名对应的目录
我们需要将编译出来后的class文件放到对应的包名目录下,比如我的test.java
开头声明在package Test;
下,那么我们就需要把test.java
编译出来的所有.class
文件放到一个新建,注意是新建的Test
文件夹里
注意这里目录的名字不能错,且每一个包对应的.class
文件都不能放错,否则会导致生成的jar
包无法运行
处理完成后应该是这个样子
3. 生成jar
包
首先需要命令窗口CD到新建包名目录的上层,注意是上层目录,然后执行jar -cef <main方法所在的类(含包名)> <生成的文件名> <包名目录>...
来完成打包。
其中,c
代表生成新的jar
包;e
代表可执行的类,亦即main
方法所在的类。书写时要加上包名,在本例中是后面的Test.test
;f
代表生成的jar包的名称,在本例中是Aim.jar
。此包名可以随意命名,没有规定;
最后面的这个参数表示将新建包名目录Test
下的所有文件都打包放到新的jar
包中。
于是,执行如下命令:jar -cef Test.test Aim.jar Test
执行完毕后会在上层目录中得到Aim.jar
双击可以正确执行
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!