2012-08-24 63 views
0

如何在顯示錯誤消息後退出簡單Java程序的控制檯?如何退出Java應用程序啓動的Windows命令提示符

目前我的代碼有:

... 
... 
if (some condition){ 
//print error 
System.exit(); 
... 
... 

但這System.exit();離開控制檯打開。我也試過exit(0);,System.exit(0);

+4

在哪些方面沒有幫助?當你運行'System.exit()'時會發生什麼? – Dervall

+1

它應該做的伎倆。所以要麼你從來沒有真正執行System.exit,要麼你正在做一些代碼中不存在的相關內容。請創建一個儘可能小的示例,您可以在其中發佈完整的代碼,或者至少告訴我們更多關於您的應用正在做什麼類型的東西。 –

+0

@Jens Schauder:這是一個簡單的Java程序,我在Windows cmd上執行。我想讓cmd在顯示特定錯誤信息後自動關閉。 – user188995

回答

2

如果你想關閉你的應用程序運行的命令提示符窗口,那麼我不相信有辦法做到這一點(至少不是很好)。

爲什麼要從命令提示符啓動應用程序,然後關閉預先存在的命令提示符窗口?這肯定會擺脫你輸出的錯誤信息(除非它也被記錄 - 在這種情況下,爲什麼要把它打印到你想關閉的窗口?)。

這是Windows特定的,但會在Windows資源管理器中創建一個快捷方式到java -jar MyJarFile.jarjava MyCompiledClass做你想做的事情嗎?這種方法的說明可以找到here

+0

好的。所以,我終於可以停止在博客和Google上搜索。謝謝。 – user188995

+2

問題是你不想退出你的程序。你想殺死你的程序運行的環境。 – Edd

2

System.exit(1);

應該可以正常工作。請注意,如果您退出時發生錯誤,您通常會設置非零值退出代碼。從the doc

該參數作爲狀態碼;按照慣例,非零狀態代碼表示異常終止。

這種使用普通的約定意味着你可以腳本,任何進程產卵您的程序可以相應地做出反應等

+0

這是一個簡單的Java程序,我在Windows cmd上執行。我想讓cmd在顯示特定錯誤信息後自動關閉 – user188995

-1

看看下面的鏈接

http://www.cs.bris.ac.uk/jot/decisions/exercise11/exit.html

有一種普遍的約定一個程序必須返回一個退出代碼。退出代碼應該爲零表示成功,非零表示失敗。平臺的不同之處在於非零代碼的含義不同,因此程序員通常只返回1作爲失敗的一般指示。

-1

System.exit();終止JVM。 int是狀態碼(0表示「正常」退出)。如果它沒有退出,那是因爲你的部分代碼不可訪問,也沒有被執行。

Java API - System.exit()

+0

這是一個簡單的Java程序,我在Windows cmd上執行。我想讓cmd在顯示特定錯誤信息後自動關閉 – user188995

0

java.lang.System不具有exit方法不帶參數,所以System.exit();將是一個編譯錯誤。 (然而,System.exit(1);會沒事的。)你的代碼不工作的原因可能是你沒有重新編譯它,所以你在添加該行之前仍然運行一些舊版本。

1

如果我正確理解你,你想在命令提示符下運行你的程序,如果程序失敗,你希望它顯示錯誤信息,關閉程序和commad提示符窗口?

如果是這樣的話,我唯一能想到的就是在批處理文件中運行你的程序,檢查程序的退出狀態。所以在你的代碼中寫下你的錯誤信息,然後我建議睡幾秒鐘,以便用戶可以真正看到它,然後用狀態碼1.e.g.退出。

if(SomeCondition){ 
    System.err.println("ERROR MESSAGE..."); 
    Thread.sleep(3000);//Sleep for 3 seconds... 
    System.exit(1); 
} 

然後從檢查「ERRORLEVEL」環境變量的批處理文件中運行程序,例如,

java <INSERT_PROGRAM_NAME> 
IF %ERRORLEVEL% == 1 exit 

希望這有助於:)

0

假設你正試圖.bat文件從Java

public static void main(String[] args) throws InterruptedException { 
    try { 
     String[] command = { "cmd.exe", "/C", "Start", "C:\\firefox.bat" }; 
     Runtime.getRuntime().exec(command).waitFor(); 
    } 
    catch (Exception e) 
    { 
     System.out.println("Execution error"); 
    } 
} 

安裝Firefox這將觸發命令提示符窗口將被手動打開,直到你在Firefox安裝完成後關閉它。

解決辦法是,在你的.bat文件剛過您的命令只是把一個「退出」對於如:

你firefox.bat將包含

@啓動/等待「火狐」「 C:\ Firefox的設置41.0.exe」 -ms

出口

這將關閉命令提示符窗口。希望這有助於...

相關問題