2014-04-13 38 views
3

在Java中,我們可以將soure代碼編譯成兩種類型的可執行文件:基本上是字節碼的.jar文件和基本上是機器碼的.exe文件。在什麼情況下編譯爲.exe與.jar,反之亦然?哪一個運行速度更快?謝謝。何時使用.jar,與.exe?

+1

如何編譯爲.exe?你可以創建可執行的jar不exe。 –

回答

5

創建.exe文件的唯一原因是使其更容易在Windows中運行應用程序或安裝程序。

Java編譯爲隨後在JVM中運行的字節代碼。通常,.exe只是一個包裝,它確保啓動java VM,並且運行存儲在.exe(或任何其他位置)中的類字節。

+0

但是.exe文件是機器碼,是嗎?這意味着它比.jar更快(因爲不需要從字節碼轉換爲機器碼)? –

+2

是的,沒有。一個* .exe是maschinecode,但這並不意味着它更快。 –

+0

+內部的類被編譯爲JVM的maschinecode(如果需要的話) –

3

不完全。有些工具可以從Java可執行文件jar中創建.exe文件,但這絕不是JDK的常規功能。

很少有情況下,.exe文件實際上是必需的,因爲運行常規jar只需安裝Java並正確配置。

一個簡單的測試,以決定是否去jar或一個exe文件是問自己「你需要這是一個.exe文件?」。如果您在5秒內無法回答,請使用jar文件。