Java 程序的打包、签名和验证
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:38
参考资料
该文中的内容来源于 Oracle 的官方文档。Oracle 在 Java 方面的文档是非常完善的。对 Java 8 感兴趣的朋友,可以直接找到这个总入口 Java SE 8 Documentation ,想阅读什么就点什么。本博客不定期从 Oracle 官网搬砖。这里介绍的工具是 jar 和 jarsigner 。
前言
*.javajavac*.classjava
abc.def.ghi.*.classabc/def/ghi/*.classjar*.jar
Java 程序中的 package 名和类文件的路径的对应关系
System.out.println("Hello, World!");SpeakerHelloWorldmainspeaker.sayHello();package com.xkland.sample;

srccom/xkland/samplejavac src/com/xkland/sample/*.java -d dst-d dstjavacdstjavacdst
dstjava com.xkland.sample.HelloWorlddst/com/xkland/sampleHelloWorld.classdstdstpackage类文件在文件系统中的路径
使用 jar 命令将程序打包
java -jar filename.jarjar-e
jar
jar-cfecfejardstjar -cfe HelloWorld.jar com.xkland.sample.HelloWorld comjar-Cjar -cfe HelloWorld.jar com.xkland.sample.HelloWorld -C dst comcom
jar -cfe HelloWorld.jar com.xkland.sample.HelloWorld -C dst ..dst
java -jar HelloWorld.jarjar -tf HelloWorld.jarHelloWorld.jarcom/xkland/sample/HelloWorld.classcom/xkland/sample/Speaker.classHelloWorld.jarMETA-INF/MANIFEST.MF
jardst-C dstjar -tf HelloWorld.jar
关于 jar 的更多内容,可以直接查看 jar命令的手册,或者查看 Java教程中关于jar的章节 。
jar 包的签名和验证
HelloWorld.jarjarsignerkeytool -genkeypair -alias youxiayouxiaHelloWorld.jarjarsigner HelloWorld.jar youxiajarsigner -verify HelloWorld.jarHelloWorld.jar
不动手不知道,一动手才发现 So Easy!更多的细节可以戳 Signing JAR Files 和 Verifying Signed JAR Files。
jar 文件被签名后,里面多了一些文件,把它解包看一下,如下图:

MANIFEST.MFYOUXIA.SFMANIFEST.MFMANIFEST.MFYOUXIA.DSA
YOUXIA.DSA
总结
jarjarsignerjarjarsignerkeytool
- 上一篇: Java 程序优化 (读书笔记)
- 下一篇: java 程序从linux 上接收不可见字符
相关文章
-
Java 程序优化 (读书笔记)
Java 程序优化 (读书笔记)
- 互联网
- 2026年04月04日
-
java 从零开始手写 RPC (02)
java 从零开始手写 RPC (02)
- 互联网
- 2026年04月04日
-
java 调试 单步跳入
java 调试 单步跳入
- 互联网
- 2026年04月04日
-
java 程序从linux 上接收不可见字符
java 程序从linux 上接收不可见字符
- 互联网
- 2026年04月04日
-
Java 常用数据结构对象的实现原理 集合类 List Set Map 哪些线程安全 (美团面试题目)
Java 常用数据结构对象的实现原理 集合类 List Set Map 哪些线程安全 (美团面试题目)
- 互联网
- 2026年04月04日
-
java 查看当前系统CPU数
java 查看当前系统CPU数
- 互联网
- 2026年04月04日






