Java 之 如何将类文件打包为jar包

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

  1. 写类文件
    Java 之 如何将类文件打包为jar包
    大概就这么个样子。
    注意,这里用到了外部依赖,也就是为什么要写这篇文章的原因。
    本例中的外部依赖包为: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
  1. encoding 防止中文乱码
  2. -classpath 指定class文件路径
  3. -d . 会在当前执行目录下生成 一个java所在的包名的(这里我的是test)目录,以及编译后的class文件
  4. 指定要被编译的java文件

这样就编译为class文件了

  1. 测试
    java -cp .;commons-codec-1.14.jar CipherTest 11 22 33
    -cp 指定依赖包,多个用;分割
    CipherTest: 是运行的主类,后面跟着命令行参数
    这样测试就通过了。
  2. 打jar包
    jar -cvf cipher.jar CipherTest.class
    执行运行,发现找不到主类。解压查看jar包内容如下:
    Java 之 如何将类文件打包为jar包
    进入META-INF查看文件:
    Java 之 如何将类文件打包为jar包
    接下来对这个文件进行处理:
    添加字段:
    Java 之 如何将类文件打包为jar包
    添加:

Main-Class: CipherTest

注意冒号后面有个空格,这个是指定主类,即启动类。

Class-Path: commons-codec-1.14.jar

指定依赖包,默认jar包根目录,有多个依赖的话,Windows用;分隔。Linux用空格分隔。

之后将依赖包拖入jar包。

最终目录结构:
Java 之 如何将类文件打包为jar包
最后运行jar包,正常工作。

在此感谢:
如何打jar包
打包示例