2012-11-23 71 views
0

可能重複:
How can I convert my Java program to an .exe file?
Compiling a java program into an exe當使用Java GUI

我相信這是一個簡單的問題,但我不能找到一個快速的答案。

我一直在學習關於GUI製作的Java類(以及真正的Java編碼),它們在編譯時會創建一個.java文件。 .java文件可以用某種IDE打開,但不能像.exe文件那樣打開。

這使我想到我的問題。何時/何地實際使用Java GUI?我沒有預見到我會爲我的朋友或同事使用我製作的工具傳遞.java文件。他們是否應該與在線應用程序一起工作最好?

+2

Java GUI可以在任何支持Java且已加載JRE的平臺上「打開」。例如,如果您創建了一個JAR文件並正確設置了Windows,那麼您可以像任何「exe」程序一樣雙擊運行您的GUI。我在任何地方都運行我自己創建的Java GUI實用程序。 –

+0

我正在投票結束,因爲雖然OP以稍微不同的方式提出了這個問題,但這裏的主要問題是如何運行本機代碼和虛擬機之間的區別。 – Frankie

回答

1

一個.java文件是一個源代碼,它是指程序員用適合他們的格式編寫代碼來定義程序的行爲。

源代碼被編譯到可以執行(運行)的.class文件中,雖然它們通常被打包成JAR文件(它們只是.class文件的集合)。

這些可以執行並可以在人員之間傳遞以共享程序。

GUI不相關。您可以創建GUI或不創建GUI,但功能仍將存在於代碼中,並且可以執行。 GUI允許您查看程序並與其交互,而如果沒有GUI,則需要使用命令行才能進行交互。

+1

謝謝。這實際上正是我所需要的。我發現埋在其餘項目文件中的.jar文件,它運行得像我想要的。我試圖像noob一樣'運行'.java文件,它只是打開代碼(在共享你的工具時很沒用) – leigero

0

如果您開發Java GUI(圖形用戶界面)或Java CL(命令行)程序,那麼您的軟件應該像*.exe一樣運行,只要用戶有安裝了「Java虛擬機」。

1

編譯Java時,會創建.class文件,而不是.java文件。 .java文件是源代碼; .class文件是編譯的結果。

.java文件可以通過IDE打開,但將它們作爲.exe文件打開是沒有意義的,因爲再次,.java文件是源代碼。

要運行Java應用程序,您必須運行特定於您的操作系統的Java虛擬機。您提供.class文件作爲輸入,並由JVM運行它。

.class文件與Java文件等效於Windows .exe文件,因爲它們是「可執行文件」。但是,儘管.exe文件可以直接由Windows執行,但.class文件不能由任何操作系統直接執行,而是由特定於操作系統的JVM執行。

Java在這方面的「優勢」在於,同一個.class文件(可執行文件)可以在任何安裝了JVM的操作系統上運行。

3

您的.java文件包含您的Java代碼,然後將其編譯爲類文件。這可以由你的朋友執行。

在大多數情況下,您會將應用程序與其資源綁定在可執行jar文件中。如果配置正確,操作系統可以通過雙擊運行Java應用程序。另一種解決方案是使用Java webstart來分發GUI應用程序,但實質上是一樣的。 Java和與jnlp文件的文件關聯必須正確配置。

最簡單的方法可能是使用像launch4j這樣的exe包裝來創建一個加載JVM並運行Java應用程序的exe文件。這些包裝甚至可以創建捆綁jvms的發行版,以確保您的應用程序能夠在用戶沒有安裝Java時運行。

希望它有幫助。