[英]Launching jar file without terminal
我已將我的Java項目從Eclipse導出為“可運行的JAR文件”,並帶有“將所需的庫提取到生成的JAR中”。 當我嘗試通過雙擊啟動它時,僅文件閃爍沒有任何反應。 當我嘗試從java -jar Main.jar
之類的終端運行它時,它工作正常。
Main.java
class Main
{
public static void main(String[] args)
{
System.out.println("Hello");
}
在看到一些stackoverflow答案后,我還提取了jar文件來檢查MANIFEST.MF
文件。
清單文件
Manifest-Version: 1.0
Class-Path: .
Main-Class: Main
Java版本
java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)
操作系統
OS X El Capitain
Version 10.11.13
通過雙擊執行它時,它也可以正常工作。 但是由於該程序很短,因此可以快速打印“ Hello World”並再次關閉。 這使您認為沒有任何反應。 在代碼的最后一行添加
try{
Thread.sleep(10000);
}catch(Exception e){}
使它運行更長的時間,然后重試。
問題是,當您雙擊jar文件時,操作系統只會在應用程序的生命周期內啟動一個終端。 由於您只有一條線路並且立即終止,因此終端也將立即消失。
如果您希望在執行完類似以下內容后可以使程序掛起:
System.out.println("Hello");
while(true) {
synchronized (Main.class) {
try {
Main.class.wait();
} catch (InterruptedException e) {
}
}
}
它將無限期地等待,直到用戶手動終止程序為止。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.