Hike News
Hike News

[Java] Java打包jar文件

Java打包jar文件

1.编译.java文件

通过javac命令编译.java后缀的源码文件

1
2
3
4
javac -d 生成目录 源码目录路径或源码文件路径
# 例如:
javac -d ./Build project/test/app/
javac -d ./Build project/test/*.java

2.打包.class文件

打包时一般使用cfvm或者cfve参数,

  • cfvm参数使用.MF文件来指定打包清单,和决定主类(入口)
  • cfve参数是在输入打包命令的参数指定主类
  1. 使用cfvm参数打包,
    配置.MF文件,名字可以自定义,我这里使用CONFIG.MF这个文件名
    1
    2
    3
    4
    Manifest-Version: 1.0
    Created-By: 23.0.1 (Oracle Corporation)
    Main-Class: project.test.app.Main
    # 此处应为空行
    其中,Main-Class配置项,填写编译后的主类路径(注意不要加.class)
    注意:
    • 主类路径是对于打包时选定的路径开始的(包含选取的目录)
    • 冒号后面加一个空格
    • 最后行必须为空行
1
2
cd Build
jar -cfvm Out.jar CONFIG.MF ./project
  • Out.jar 为打包后的打包文件名
  • CONFIG.MF为刚刚配置的.MF文件
  • ./project 为刚刚javac编译完成的目录

命令运行结束后,目录下会出现Out.jar文件

  1. 使用cfve参数打包
    打包命令如下:
    1
    2
    cd Build
    jar -cfve Out.jar project.test.app.Main ./project
    • Out.jar 为打包后的打包文件名
    • project.test.app.Main为填写编译后的主类路径(注意不要加.class)
    • ./project 为刚刚javac编译完成的目录

命令运行结束后,目录下会出现Out.jar文件

3.运行与导入jar

  1. 运行jar
    在刚刚打包完成的.jar文件目录打开cmd,输入如下命令即可运行:

    1
    java -jar Out.jar

    其中,Out.jar就是我们刚刚生成的.jar文件的文件名

  2. 导入jar
    jar文件还可以在其他java程序编译或运行时导入
    秩序将java程序需要的包进行打包,并在运行时添加如下参数即可:

    1
    2
    3
    4
    # 编译时导入示例
    javac -cp "path/to/classes;path/to/lib.jar" MyClass.java
    # 运行时导入示例
    java -cp "path/to/classes;path/to/lib.jar" my.package.MainClass
  • path/to/classes;是我们需要导入的.class文件的路径(可忽略)
  • path/to/lib.jar是我们需要导入的.jar文件的路径
  • MyClass.java是我们编译时的java源码文件
  • my.package.MainClass是我们运行时的java源码文件路径