初學Java 8寫個小工具程式, 請問如何編譯成EXE?

年輕時代會C和資料庫語言,今天寫了一個Java小程式;
請問一下如何編譯成.EXE, 因為要拷到其它PC上使用, 3Q!!
2019-07-16 13:11 發佈
應該 Google 吧, Mobile01 上面能回答你程式問題的人很少.
BTW, JAVA 的 compiler 會產生 Byte code, 不會產生 EXE 啊.

你只能透過其他工具, 把 JAVA Engine 跟 Byte code 綁在一起, 參考一下:
https://stackoverflow.com/questions/147181/how-can-i-convert-my-java-program-to-an-exe-file

學會程式的同時, 也要學會英文, 不然你的資源是很匱乏的, 學會閱讀英文, 你的程式資源就會廣及全世界.
3 *的毀台計畫, 請去了解, 如果了解還買3 *, 那你就是幫助3 *毀台的罪人之一.
把32bit jre放同目錄夾,用launch4j包起來
感謝兩位大大, 各加一分!
可能不會把它包裝成EXE, 反正兩台PC都裝Java就好了
畢竟這類方式和自己程式把函式庫加進來編成獨立EXE, 還是差很多

Java這種語言,有點像半編譯的語言,
難怪會拖累Android的速度(??)

讓我想到學生時期學BASICA, BASICA有個模式,
程式也可以用非本文檔存,在DOS下附在BASICA後執行
感覺像Java的byte code~ 哈哈哈 (開個玩笑)
JAVA 主打就是 Write once,run where(寫一次,在任何平台運行)

這個應該在任何一本 JAVA教學書,第一章開宗明義就會說這件事。如果你用的書沒說明這件事,建議換本書。


平台指的是系統或OS,比方:Windows、Linux、BSD、unix.......等等。

微軟的 .NET 就是抄 JAVA概念的。
只是那個.NET 只能跨 windows 版本,無法跨OS 平台。
註: Linux 有 .NET 框架的相容套件,但不是 100%相容

這類跨平台的程式語言,運行都需要在 OS 安裝一個「運行環境」(或稱框架),以 JAVA 來說就是 JRE。


傳統 C語言、C++語言,編譯後只能在那個系統OS運行,拿去別的系統就無法跑了。

比如說 windows 的 exe,在 Linux/BSD/unix 都是沒法跑的。如果想要在別的平台運行,程式就要在別的平台重新編譯,而往往都不是再次編譯就能解決的,還要針對那個 OS平台的特性改寫部份程式碼,才能通過編譯,否則編譯會出錯。

而 JAVA 這一類的跨平台語言。編譯出來的中介碼,在各個 OS平台,只要有 JRE 運行環境,就都可以運行。效果/畫面 一模一樣。不必重新編譯。

非常方便,高階(人性化語言)。
缺點就是:運行效率比較差。

因為那個 JRE 運行環境,實際上是一個虛擬機器。JAVA編譯出來的中介碼,並不是直接在 OS 跑,而是在虛擬機器上面跑。它就是用這個方法,才實現了跨平台....(虛擬機,模擬器)


安卓會以 JAVA為母語,其一是這語言完全物件導向,語法也類似C++,對開發速度很有幫助。是電腦歷史上後期出現的先進語言。雖入門稍難,但熟了後很好用。

其二因為JAVA跑在虛擬機器上,可以保證OS核心不會因為程式錯誤而崩潰,虛擬機的進程是隨時可以殺掉的,不會影響到核心運作,也就是穩定度會很高,避免因為程式軟體當掉,造成整個系統當機。

所以 Google 就不必為所有安卓程式做審核,即便那是不知哪裡來的詭異程式,因為它只能在虛擬機上跑,無法侵入系統核心,或使系統當機。也就是為何安卓可以這麼開放的原因,允許使用者下 *.apk 自行安裝軟體。

當然有利也有弊,弊端就是運行效率差,所以以前的安卓機,反應速度輸iPhone很多(iPhone軟體是C++寫的居多)。後來 CPU 改朝換代愈來愈快,手機軟體對那些高速CPU來講只是小菜一碟,速度差異就漸漸減小了。


當然你硬要把它包成 exe 也行。

因為畢竟很多人不知道 JRE 是啥咪碗糕,跑個軟體還要特地去下載 JRE 來安裝,囉唆麻煩。沒裝 JRE 的電腦,怎麼點了軟體沒反應,還以為軟體壞的...

但包成 EXE,那就失去跨平台的意義了。並且軟體會變很肥大(因為把引用的函式庫也都包進去了)。每套軟體如果都這樣包,函式庫一直重複,會浪費硬碟空間。

包成 exe 有兩種:
一種是真的完全包成 exe
另一種是仍保留完整 *.jar 可以跨平台 ,
*.exe 只是用來引導在 win平台下載入自身目錄中的函式庫。
感謝!!
fedora wrote:
JAVA 主打就是 Write once,run where(寫一次,在任何平台運行)(恕刪)
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?