代码之家  ›  专栏  ›  技术社区  ›  infinitezero

无法使用终端创建可执行jar文件

  •  0
  • infinitezero  · 技术社区  · 8 年前

    我试图创建一个简单的可执行jar文件。我的步骤是:

    测验JAVA

    public class Test{
        public static void main(String[] args){
            System.out.println("Hello World");
        }
    }
    

    航站楼:

    javac Test.java
    

    生产测试。班

    检查:

    java Test  
    Hello World
    

    创建清单。mf文件:

    Main-Class: Test
    

    然后

    jar -cfmv Test.jar manifest.mf Test.class   
    added manifest  
    adding: Test.class(in = 413) (out= 287)(deflated 30%)
    

    最后

    java -jar Test.jar  
    no main manifest attribute, in Test.jar
    

    我按照Katanas的所有步骤回答: How to create a .jar file using the terminal

    更新:

    正如ScaryWombat所建议的,我解压缩了jar文件:

    ls -alR  
    .:  
    total 16
    drwxrwxr-x 3 infiniteZero infiniteZero 4096 May 28 02:25 .
    drwxrwxr-x 4 infiniteZero infiniteZero 4096 May 28 02:26 ..
    drwxrwxr-x 2 infiniteZero infiniteZero 4096 May 28 02:19 META-INF
    -rw-rw-r-- 1 infiniteZero infiniteZero  413 May 28 01:50 Test.class
    
    ./META-INF:
    total 12
    drwxrwxr-x 2 infiniteZero infiniteZero 4096 May 28 02:19 .
    drwxrwxr-x 3 infiniteZero infiniteZero 4096 May 28 02:25 ..
    -rw-rw-r-- 1 infiniteZero infiniteZero   94 May 28 02:19 MANIFEST.MF
    
    cat META-INF/MANIFEST.MF 
    Manifest-Version: 1.0
    Main-Class: Test.class
    Created-By: 9-internal (Oracle Corporation)
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   user2208931 user2208931    8 年前

    在清单末尾添加一个空行,重新编译并运行。你给编译器提供的清单必须是UTF-8格式的

    或者:

    • 在total commander中打开jar位置
    • 单击jar文件并按Ctrl+PageDown
    • META-INF->右键单击清单并点击编辑
    • 在清单末尾添加一个空行
    • 保存/退出并运行java-jar测试。罐子