https://introcs.cs.princeton.edu/java/85application/jar/jar.html
自己写的manifest.mf注意:
https://blog.csdn.net/neareast/article/details/8875342
(1)后缀名必须为.mf
(2)文件内容的最后一行必须为空行(\n)
java -jar -Dfile.encoding=utf-8 xx.jar
D:\java_oj\ReadFileFromClassPath\target 的目录 2019/09/30 20:45 <DIR> . 2019/09/30 20:45 <DIR> .. 2019/09/30 20:55 <DIR> classes 2019/09/30 20:45 <DIR> generated-sources 2019/09/30 20:45 <DIR> maven-archiver 2019/09/30 20:45 <DIR> maven-status 2019/09/30 20:45 3,509 ReadFileFromClassPath-0.0.1-SNAPSHOT-fat.jar 2019/09/30 20:45 3,310 ReadFileFromClassPath-0.0.1-SNAPSHOT.jar 2019/09/30 20:45 <DIR> test-classes 2 个文件 6,819 字节 7 个目录 105,511,239,680 可用字节 D:\java_oj\ReadFileFromClassPath\target>cd .. D:\java_oj\ReadFileFromClassPath>dir 驱动器 D 中的卷是 软件 卷的序列号是 6BDF-6A2D D:\java_oj\ReadFileFromClassPath 的目录 2019/09/30 20:45 <DIR> . 2019/09/30 20:45 <DIR> .. 2019/09/30 20:26 1,517 .classpath 2019/09/30 20:26 573 .project 2019/09/30 20:26 <DIR> .settings 2019/09/30 20:35 37 inputFile 2019/09/30 20:45 1,453 pom.xml 2019/09/30 20:26 <DIR> src 2019/09/30 20:45 <DIR> target 4 个文件 3,580 字节 5 个目录 105,511,239,680 可用字节 D:\java_oj\ReadFileFromClassPath>cd target D:\java_oj\ReadFileFromClassPath\target>cd classes D:\java_oj\ReadFileFromClassPath\target\classes>dir 驱动器 D 中的卷是 软件 卷的序列号是 6BDF-6A2D D:\java_oj\ReadFileFromClassPath\target\classes 的目录 2019/09/30 20:55 <DIR> . 2019/09/30 20:55 <DIR> .. 2019/09/30 20:45 37 inputFile 2019/09/30 20:55 0 manifest 2019/09/30 20:45 <DIR> testdemo 2 个文件 37 字节 3 个目录 105,511,239,680 可用字节 D:\java_oj\ReadFileFromClassPath\target\classes>jar cmf manifest example.jar testdemo.Demo testdemo.Demo: 没有这个文件或目录 D:\java_oj\ReadFileFromClassPath\target\classes>jar cmf manifest example.jar .\testdemo D:\java_oj\ReadFileFromClassPath\target\classes>dir 驱动器 D 中的卷是 软件 卷的序列号是 6BDF-6A2D D:\java_oj\ReadFileFromClassPath\target\classes 的目录 2019/09/30 20:57 <DIR> . 2019/09/30 20:57 <DIR> .. 2019/09/30 20:58 1,673 example.jar 2019/09/30 20:45 37 inputFile 2019/09/30 20:55 0 manifest 2019/09/30 20:45 <DIR> testdemo 3 个文件 1,710 字节 3 个目录 105,511,235,584 可用字节 D:\java_oj\ReadFileFromClassPath\target\classes>java -jar example.jar example.jar中没有主清单属性 D:\java_oj\ReadFileFromClassPath\target\classes>cd .. D:\java_oj\ReadFileFromClassPath\target>jar cmf .\classes\manifest example.jar .\classes\testdemo D:\java_oj\ReadFileFromClassPath\target>dir 驱动器 D 中的卷是 软件 卷的序列号是 6BDF-6A2D D:\java_oj\ReadFileFromClassPath\target 的目录 2019/09/30 21:07 <DIR> . 2019/09/30 21:07 <DIR> .. 2019/09/30 20:57 <DIR> classes 2019/09/30 21:07 1,705 example.jar 2019/09/30 20:45 <DIR> generated-sources 2019/09/30 20:45 <DIR> maven-archiver 2019/09/30 20:45 <DIR> maven-status 2019/09/30 20:45 3,509 ReadFileFromClassPath-0.0.1-SNAPSHOT-fat.jar 2019/09/30 20:45 3,310 ReadFileFromClassPath-0.0.1-SNAPSHOT.jar 2019/09/30 20:45 <DIR> test-classes 3 个文件 8,524 字节 7 个目录 105,511,231,488 可用字节 D:\java_oj\ReadFileFromClassPath\target>cd classes D:\java_oj\ReadFileFromClassPath\target\classes>jar cmf manifest.mf result.jar .\testdemo D:\java_oj\ReadFileFromClassPath\target\classes>dir 驱动器 D 中的卷是 软件 卷的序列号是 6BDF-6A2D D:\java_oj\ReadFileFromClassPath\target\classes 的目录 2019/09/30 21:11 <DIR> . 2019/09/30 21:11 <DIR> .. 2019/09/30 20:45 37 inputFile 2019/09/30 21:10 50 manifest.mf 2019/09/30 21:11 1,697 result.jar 2019/09/30 20:45 <DIR> testdemo 3 个文件 1,784 字节 3 个目录 105,511,231,488 可用字节 D:\java_oj\ReadFileFromClassPath\target\classes>java -jar result.jar Exception in thread "main" java.lang.NullPointerException at java.io.Reader.<init>(Unknown Source) at java.io.InputStreamReader.<init>(Unknown Source) at testdemo.Demo.readFile(Demo.java:18) at testdemo.Demo.main(Demo.java:25) D:\java_oj\ReadFileFromClassPath\target\classes>jat tf result.jar ‘jat‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 D:\java_oj\ReadFileFromClassPath\target\classes>jar tf result.jar META-INF/ META-INF/MANIFEST.MF testdemo/ testdemo/Demo.class D:\java_oj\ReadFileFromClassPath\target\classes>jar cmf manifest.mf result.jar .\testdemo\ .\inputFile D:\java_oj\ReadFileFromClassPath\target\classes>dir 驱动器 D 中的卷是 软件 卷的序列号是 6BDF-6A2D D:\java_oj\ReadFileFromClassPath\target\classes 的目录 2019/09/30 21:11 <DIR> . 2019/09/30 21:11 <DIR> .. 2019/09/30 20:45 37 inputFile 2019/09/30 21:10 50 manifest.mf 2019/09/30 21:14 1,846 result.jar 2019/09/30 20:45 <DIR> testdemo 3 个文件 1,933 字节 3 个目录 105,511,231,488 可用字节 D:\java_oj\ReadFileFromClassPath\target\classes>jar tf result.jar META-INF/ META-INF/MANIFEST.MF testdemo/ testdemo/Demo.class inputFile D:\java_oj\ReadFileFromClassPath\target\classes>java -jar result.jar helloworld what‘s is your name鍚嶅瓧 D:\java_oj\ReadFileFromClassPath\target\classes>java -jar -Dfile.encoding=utf-8 result.jar helloworld what‘s is your name名字 D:\java_oj\ReadFileFromClassPath\target\classes>
原文地址:https://www.cnblogs.com/CreatorKou/p/11614197.html
时间: 2024-10-12 08:44:04