簡體   English   中英

在沒有終端的情況下啟動jar文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM