• 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常用容器简要性能分析(List。Map。Set)
    初始化 List 的五种方法(java)【转】
    线程池方式对数组多线程随机取出分析
    Spring文件下载方式整理
    阿里云linux安装Consul启动
    Java字节流&字符流的转换
    VUE中字符串实现JSON格式化展示。
    java中URL作为参数前后端传递分析
    Java实现GBK转码到UTF-8(文件)
    python处理Excel文件
  • 原文地址:https://www.cnblogs.com/CreatorKou/p/11614197.html
Copyright © 2020-2023  润新知