Linux: 将Java程序打包为jar包及运行

34 篇文章 0 订阅


1 背景介绍

1.1 jar命令

  • 可以通过了–help命令来详细了解:
jar --help
  • 部分截图如下:
    在这里插入图片描述

1.2 META-INF/MAINFEST.MF 介绍

  • META-INF文件夹相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务。这个文件夹和其中的 MANIFEST.MF文件,在用jar打包时自动生成。
    执行jar文件的时候,这个jar里是需要具备 META-INF/MANIFEST.MF的,否则java -jar就找不到main class。


2 打包Java程序

2.1 直接打包.class文件

  • 下面以打包单个helloWorld.class为例,当打包多个.class文件时,各个.class文件以“空格”间隔就OK了。

2.1.1 创建helloWorld.java,并编程生成.class文件

  • 以helloWorld.java为例来说明,它的代码如下:
public class helloWorld{
    public static void main(String[] args){
        System.out.println("Hello, world.");
    }
}

  • 使用javac命令编程生成helloWorld.class文件,命令如下:
javac helloWorld.java

2.1.2 创建MANIFEST.MF文件

  • 创建MANIFEST.MF文件,其内容为:
Manifest-Version: 1.0
Main-Class: helloWorld

  • 其中,Main-Class对应着helloWorld.java中的主类名称,以便后期通过生成的jar包运行该程序。

  • 此时,当前目录为:

在这里插入图片描述

2.1.3 打包为jar包

  • 有两种方式来生成对应的jar包:1、创建MANIFEST.MF文件;2、使用"-e"参数来指定main函数入口。
2.1.3.1 创建MANIFEST.MF文件
jar -cvfm hw.jar MANIFEST.MF helloWorld.class 
  • 此时,该目录内会生成hw.jar包:
    在这里插入图片描述
2.1.3.2 使用"-e"参数来指定main函数入口
  • 命令行如下:
jar -cvfe hw.jar helloWorld helloWorld.class
  • 此时,该目录内容如下:

在这里插入图片描述

2.1.4 运行jar包

  • 运行该hw.jar包,命令如下:
java -jar hw.jar
  • 运行结果为:

在这里插入图片描述


2.2 打包目录内全部.class文件

2.2.1 打包

  • 命令行:
jar -cvfm hw.jar MANIFEST.MF -C dirClass .
  • 其中,“-C"指定对应的.class所在目录,比如dirClass,其后的”."表示dirClass目录内的全部文件。

在这里插入图片描述

2.2.2 运行

  • 命令为:
java -jar hw.jar
  • 运行结果为:

在这里插入图片描述



3 引用博客

1、JAVA-如何打包成jar包
2、META-INF/MANIFEST.MF介绍
3、Java程序打包成jar包

  • 9
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值