java命令行工具打包

Posted creatorkou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java命令行工具打包相关的知识,希望对你有一定的参考价值。

  https://introcs.cs.princeton.edu/java/85application/jar/jar.html

自己写的manifest.mf注意:

https://blog.csdn.net/neareast/article/details/8875342

(1)后缀名必须为.mf

(2)文件内容的最后一行必须为空行( )

java -jar -Dfile.encoding=utf-8 xx.jar

 D:java_ojReadFileFromClassPath	arget 的目录

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_ojReadFileFromClassPath	arget>cd ..

D:java_ojReadFileFromClassPath>dir
 驱动器 D 中的卷是 软件
 卷的序列号是 6BDF-6A2D

 D:java_ojReadFileFromClassPath 的目录

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_ojReadFileFromClassPath>cd target

D:java_ojReadFileFromClassPath	arget>cd classes

D:java_ojReadFileFromClassPath	argetclasses>dir
 驱动器 D 中的卷是 软件
 卷的序列号是 6BDF-6A2D

 D:java_ojReadFileFromClassPath	argetclasses 的目录

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_ojReadFileFromClassPath	argetclasses>jar cmf manifest example.jar testdemo.Demo
testdemo.Demo: 没有这个文件或目录

D:java_ojReadFileFromClassPath	argetclasses>jar cmf manifest example.jar .	estdemo
D:java_ojReadFileFromClassPath	argetclasses>dir
 驱动器 D 中的卷是 软件
 卷的序列号是 6BDF-6A2D

 D:java_ojReadFileFromClassPath	argetclasses 的目录

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_ojReadFileFromClassPath	argetclasses>java -jar example.jar
example.jar中没有主清单属性

D:java_ojReadFileFromClassPath	argetclasses>cd ..

D:java_ojReadFileFromClassPath	arget>jar cmf .classesmanifest example.jar .classes	estdemo
D:java_ojReadFileFromClassPath	arget>dir
 驱动器 D 中的卷是 软件
 卷的序列号是 6BDF-6A2D

 D:java_ojReadFileFromClassPath	arget 的目录

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_ojReadFileFromClassPath	arget>cd classes

D:java_ojReadFileFromClassPath	argetclasses>jar cmf manifest.mf result.jar .	estdemo
D:java_ojReadFileFromClassPath	argetclasses>dir
 驱动器 D 中的卷是 软件
 卷的序列号是 6BDF-6A2D

 D:java_ojReadFileFromClassPath	argetclasses 的目录

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_ojReadFileFromClassPath	argetclasses>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_ojReadFileFromClassPath	argetclasses>jat tf result.jar
‘jat‘ 不是内部或外部命令,也不是可运行的程序
或批处理文件。

D:java_ojReadFileFromClassPath	argetclasses>jar tf result.jar
META-INF/
META-INF/MANIFEST.MF
testdemo/
testdemo/Demo.class

D:java_ojReadFileFromClassPath	argetclasses>jar cmf manifest.mf result.jar .	estdemo .inputFile

D:java_ojReadFileFromClassPath	argetclasses>dir
 驱动器 D 中的卷是 软件
 卷的序列号是 6BDF-6A2D

 D:java_ojReadFileFromClassPath	argetclasses 的目录

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_ojReadFileFromClassPath	argetclasses>jar tf result.jar
META-INF/
META-INF/MANIFEST.MF
testdemo/
testdemo/Demo.class
inputFile

D:java_ojReadFileFromClassPath	argetclasses>java -jar result.jar
helloworld
what‘s is your name鍚嶅瓧

D:java_ojReadFileFromClassPath	argetclasses>java -jar -Dfile.encoding=utf-8 result.jar
helloworld
what‘s is your name名字

D:java_ojReadFileFromClassPath	argetclasses>

 

以上是关于java命令行工具打包的主要内容,如果未能解决你的问题,请参考以下文章

开发环境Android 命令行中执行 Java 程序 ( IntelliJ IDEA 中创建 Java / Kotlin 工程 | dx 打包 DEX 字节码文件 | dalvikvm 命令 )(代码

sql [SQL查询片段]用于在命令行或通过R和其他工具使用SQL的快速代码段#tags:sql,R,text processing,命令li

我在将java的.class文件打包成.jar文件后运行不了“Failed to load Main-Class”。怎么办?

Maven入门教程

命令行工具打包

ant的打包工具