在使用命令行編譯Java jar文件時遇到一些技術問題。無法執行jar文件
我在同一個目錄中這兩個.java文件
// Source.java
package home;
public class Source {
public Source(){
System.out.println("This is the source.");
}
public static void main(String[] s){
System.out.println("this is England.");
System.out.println("ok 1 - Input file close");
new Source();
new Other();
System.exit(3);
}
}
// Other.java
package home;
public class Other {
public Other(){
System.out.println("More source here.");
}
}
我這兩個文件編譯成.jar文件,如下所示:
#!/usr/bin/env bash
javac $(dirname "$0")/*.java
jar cmf MyJar.jar Manifest.txt *.class
的Manifest.txt文件只包含以下三行:
Manifest-Version: 1.0
Created-By: <Your info>
Main-Class: home.Source
然而,當我嘗試執行jar文件:
#!/usr/bin/env bash
java -jar MyJar.jar
我得到這個錯誤:
Error: Could not find or load main class home.Source
我不知道現在該做什麼。有人知道什麼是錯的?也許我正在使用錯誤的命令來生成.jar文件?
作爲檢查,我跑jar tf
:
bash-3.2$ jar tf MyJar.jar
META-INF/
META-INF/MANIFEST.MF
Other.class
Source.class
你可以執行'jar tf MyJar.jar'並確認清單確實在罐子裏和正確的路徑中嗎? –
[無法執行jar文件:「無主清單屬性」]的可能重複(http://stackoverflow.com/questions/9689793/cant-execute-jar-file-no-main-manifest-attribute) – Omore
我只是在這裏閱讀http:// stackoverflow。com/a/17097535/3858121您可能需要在清單文件後面添加一個空行,否則它將無法正確解析 –