认真阅读完这篇文章熟练掌握项目打jar包的各种方法

举报
桃花键神 发表于 2022/04/17 12:44:54 2022/04/17
【摘要】 认真阅读完这篇文章熟练掌握项目打jar包的各种方法

(1)jar 打包文件

C:\jar\img>jar -cvfe i.jar m.txt .
已添加清单
正在添加: g1.gif(输入 = 10602) (输出 = 8118)(压缩了 23%)
正在添加: g1.png(输入 = 3505) (输出 = 3492)(压缩了 0%)
正在添加: g10.png(输入 = 4159) (输出 = 4164)(压缩了 0%)
正在添加: g11.png(输入 = 3868) (输出 = 3860)(压缩了 0%)
正在添加: g12.png(输入 = 3823) (输出 = 3828)(压缩了 0%)
正在添加: g13.png(输入 = 4405) (输出 = 4410)(压缩了 0%)
正在添加: g14.png(输入 = 3284) (输出 = 3270)(压缩了 0%)
正在添加: g15.png(输入 = 3616) (输出 = 3621)(压缩了 0%)
正在添加: g16.png(输入 = 4165) (输出 = 4170)(压缩了 0%)
正在添加: g17.png(输入 = 3839) (输出 = 3836)(压缩了 0%)
正在添加: g18.png(输入 = 4661) (输出 = 4655)(压缩了 0%)
正在添加: g19.png(输入 = 4251) (输出 = 4256)(压缩了 0%)
正在添加: g2.png(输入 = 4017) (输出 = 4022)(压缩了 0%)
正在添加: g3.png(输入 = 4232) (输出 = 4218)(压缩了 0%)
正在添加: g4.png(输入 = 4423) (输出 = 4408)(压缩了 0%)
正在添加: g5.png(输入 = 3880) (输出 = 3885)(压缩了 0%)
正在添加: g6.png(输入 = 4172) (输出 = 4177)(压缩了 0%)
正在添加: g7.png(输入 = 3761) (输出 = 3766)(压缩了 0%)
正在添加: g8.png(输入 = 4063) (输出 = 4044)(压缩了 0%)
正在添加: g9.png(输入 = 3962) (输出 = 3967)(压缩了 0%)

C:\jar\img>cd ..

C:\jar>jar -cvfe i.jar m.txt img
已添加清单
正在添加: img/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: img/g1.gif(输入 = 10602) (输出 = 8118)(压缩了 23%)
正在添加: img/g1.png(输入 = 3505) (输出 = 3492)(压缩了 0%)
正在添加: img/g10.png(输入 = 4159) (输出 = 4164)(压缩了 0%)
正在添加: img/g11.png(输入 = 3868) (输出 = 3860)(压缩了 0%)
正在添加: img/g12.png(输入 = 3823) (输出 = 3828)(压缩了 0%)
正在添加: img/g13.png(输入 = 4405) (输出 = 4410)(压缩了 0%)
正在添加: img/g14.png(输入 = 3284) (输出 = 3270)(压缩了 0%)
正在添加: img/g15.png(输入 = 3616) (输出 = 3621)(压缩了 0%)
正在添加: img/g16.png(输入 = 4165) (输出 = 4170)(压缩了 0%)
正在添加: img/g17.png(输入 = 3839) (输出 = 3836)(压缩了 0%)
正在添加: img/g18.png(输入 = 4661) (输出 = 4655)(压缩了 0%)
正在添加: img/g19.png(输入 = 4251) (输出 = 4256)(压缩了 0%)
正在添加: img/g2.png(输入 = 4017) (输出 = 4022)(压缩了 0%)
正在添加: img/g3.png(输入 = 4232) (输出 = 4218)(压缩了 0%)
正在添加: img/g4.png(输入 = 4423) (输出 = 4408)(压缩了 0%)
正在添加: img/g5.png(输入 = 3880) (输出 = 3885)(压缩了 0%)
正在添加: img/g6.png(输入 = 4172) (输出 = 4177)(压缩了 0%)
正在添加: img/g7.png(输入 = 3761) (输出 = 3766)(压缩了 0%)
正在添加: img/g8.png(输入 = 4063) (输出 = 4044)(压缩了 0%)
正在添加: img/g9.png(输入 = 3962) (输出 = 3967)(压缩了 0%)

image-20211222091828432

(2)jar打包类工具包

image-20211222092308066

编译程序,并打软件包utils.jar

C:\Users\Administrator\Desktop\jar>dir
 驱动器 C 中的卷是 Win 10 Pro x64
 卷的序列号是 D830-6A82

 C:\Users\Administrator\Desktop\jar 的目录

2021/12/22  09:20    <DIR>          .
2021/12/22  09:20    <DIR>          ..
2021/12/22  09:20                85 Utils.java
               1 个文件             85 字节
               2 个目录 40,928,169,984 可用字节

C:\Users\Administrator\Desktop\jar>javac -d . *.java

C:\Users\Administrator\Desktop\jar>dir
 驱动器 C 中的卷是 Win 10 Pro x64
 卷的序列号是 D830-6A82

 C:\Users\Administrator\Desktop\jar 的目录

2021/12/22  09:23    <DIR>          .
2021/12/22  09:23    <DIR>          ..
2021/12/22  09:23    <DIR>          cn
2021/12/22  09:20                85 Utils.java
               1 个文件             85 字节
               3 个目录 40,919,842,816 可用字节

C:\Users\Administrator\Desktop\jar>jar -cvfe utils.jar m.txt cn
已添加清单
正在添加: cn/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: cn/webrx/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: cn/webrx/Utils.class(输入 = 247) (输出 = 193)(压缩了 21%)
C:\Users\Administrator\Desktop\jar>dir
 驱动器 C 中的卷是 Win 10 Pro x64
 卷的序列号是 D830-6A82
 C:\Users\Administrator\Desktop\jar 的目录
2021/12/22  09:24    <DIR>          .
2021/12/22  09:24    <DIR>          ..
2021/12/22  09:23    <DIR>          cn
2021/12/22  09:24               860 utils.jar
2021/12/22  09:20                85 Utils.java
               2 个文件            945 字节
               3 个目录 40,918,331,392 可用字节
C:\Users\Administrator\Desktop\jar>

项目使用jar

image-20211222093007619

maven项目pom.xml 也可以添加依赖

<!-- maven直接引入本地jar -->
<dependency>
    <groupId>cn.webrx</groupId>
    <artifactId>utils</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>C:/Users/Administrator/Desktop/jar/utils.jar</systemPath>
</dependency>

image-20211222093028759

(3)jar打可以执行的程序包

App.java

package cn.webrx;
public class App {
	public static void main(String[] args){
	    System.out.println("Hello World");
	}
}
C:\Users\Administrator\Desktop\jar>javac -d . *.java
C:\Users\Administrator\Desktop\jar>java cn.webrx.App
Hello World
C:\Users\Administrator\Desktop\jar>jar -cvfe app.jar cn.webrx.App cn
已添加清单
正在添加: cn/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: cn/webrx/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: cn/webrx/App.class(输入 = 420) (输出 = 295)(压缩了 29%)

C:\Users\Administrator\Desktop\jar>java -jar app.jar
Hello World

(4) idea开发工具发行项目jar

image-20211222100313266

image-20211222100551537

image-20211222100527647

(5) maven 打jar

image-20211222110822692

打可执行的jar 在maven 执行package并打包,并执行就可以了

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>cn.webrx</groupId>
    <artifactId>app</artifactId>
    <version>1.0</version>
    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <java-version>17</java-version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>

    </dependencies>
    <build>
        <finalName>${project.artifactId}</finalName>
        <testSourceDirectory>src/test/java</testSourceDirectory>
        <sourceDirectory>src/main/java</sourceDirectory>

        <plugins>
            <!-- 编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>${java-version}</source>
                    <target>${java-version}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
            
            <!-- 打jar包插件,可以指定执行程序 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.2.4</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>cn.webrx.App</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- 打包时 执行程序 -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <!-- test install complie package -->
                        <phase>package</phase>
                        <goals>
                            <goal>java</goal>
                        </goals>
                        <configuration>
                            <mainClass>cn.webrx.App</mainClass>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>

    </build>

</project>

jdeps --list-deps 00dict.jar

-- 生成jre
jlink.exe --module-path D:\jdk\jdk-17.0.1\jmods --add-modules java.base,java.desktop --output jre

dict.bat内容如下
echo off
start /b ./jre/bin/javaw.exe -jar 00dict.jar

-- 设置直接打开jar文件,
(1)右键打开方式,选择jdk\bin\javaw.exe 

 (2) 运行中输出regedit 注册表
 找到如下配置,添加一个-jar
进入HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command,
修改默认的键值为 "D:\Program Files\Java\jre\bin\javaw.exe" -jar "%1"

image-20220104091327599

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。