2016-08-24 106 views
-2

java -versionjava -showversion和有什麼不一樣?`java -version`和`java -showversion`有什麼區別?

This blog

的-version標誌打印出 上述數據後,立即終止該JVM。然而,有一個類似的標誌顯示,其中 可用於產生相同的輸出,但是在給定Java應用程序的情況下繼續執行並執行 。

因此,我在終端的一個標籤中運行了一個Java程序。 (我使用Ubuntu) 而在另一個選項卡中,程序仍在運行時,我給了java -version。根據博客中的上述聲明,我期望我的Java程序退出,但它沒有。 另外,當我運行java -showversion時,它給出了完全相同的輸出並且程序執行沒有終止。

那麼兩者有什麼區別?

我使用Java 8,這是輸出:

java version "1.8.0_74" 
Java(TM) SE Runtime Environment (build 1.8.0_74-b02) 
Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode) 

注:博客使用Java 6,因此具有一些在Java中的更高版本的變化?

在此先感謝。

+1

您可以調用'java -showVersion MyProgram'並在顯示版本後運行MyProgram.class。 – byxor

+0

聽起來像您需要了解基本的Unix使用情況。您開始*完全獨立的JVM副本,這與其他地方的副本完全無關。 – chrylis

+0

這實際上並不是Unix特有的東西@chrylis。這就是它在我見過的每個操作系統上的工作方式 – JJF

回答

2

Java docs

-showversion

顯示版本信息並繼續 應用程序的執行。此選項等同於-version選項,但 指示JVM在顯示版本 信息後退出。

-version

顯示版本信息,然後退出。這個選項是 相當於-showversion選項,只是後者不顯示 指示JVM在顯示版本信息後退出。

+2

@downvoter很難理解直接從相關文檔中回答引用的可能錯誤。實際上不可能。 – EJP

+0

@EJP手頭的問題是關於*調用單獨的JVM啓動*以及它爲什麼不終止現有的JVM。這並沒有解決這個問題。 – chrylis

-3

當您運行程序時,它會創建一個進程。該進程獨立於在另一個shell中運行'java -version'時創建的第二個進程。
第一個進程不受第二個進程所做的任何操作的影響。

相關問題