付費限定

Java 編譯成 WebAssembly 的工具

更新於 2024/04/09閱讀時間約 1 分鐘
圖片來自 Ricardo Gomez Angel
古早的年代想在網頁內埋 Java 還有 Java applet 可以用,在 Java applet 式微後,找來找去比較可以的辦法大概就是編譯成 WebAssembly 了吧!
想要把 Java 編譯成 WebAssembly,有下面三個工具可以選用:

TeaVM

TeaVM 是個 Java 到 JavaScript 的轉碼工具。TeaVM 接受的來源是 Java bytecode,意即不只是 Java,只要能編譯成 Java bytecode 的語言,包括 Kotlin 等,都可以透過 TeaVM 編譯成 WebAssembly 或轉碼成 JavaScript。
不過 Java 到 WebAssembly 這一部份還只在實驗階段,只適合拿來當玩具,不適合拿來做工具。

CheerpJ

與樓上一樣是 Java bytecode 到 WebAssembe 或 JavaScript 的工具。背後有商業公司支持,因此令人感覺發展的完整度也較高,相對來說,商業用途就必須付費,只有非商業用途免費,付費除了買授權外,同時也會有顧問提供技術支援,果然天下沒有白吃的午餐啊。

JWebAssembly

從名字就可以聯想到 JWebAssembly 只專注於 Java bytecode 到 WebAssembly 的轉換。一樣比較偏玩具性質。

小結

一輪調查完畢,雖然三個工具各有特色,也都各有限制,技術上的限制可能是某一些 Java 的特性很難被完整的轉換,非技術上的限制就是錢錢的問題啦,目前並沒有既免費又傻瓜的轉換器這樣的東西存在,不過還是謝謝佛心的 CheerpJ 有提供非商用的免費版給大家。
以行動支持創作者!付費即可解鎖
本篇內容共 762 字、0 則留言,僅發佈於尊榮訂閱方案專屬 VIP 小房間你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
avatar-img
14會員
64內容數
Where I go and what I get.
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
繼承 在Java中,一個類可以由其他類派生。如果你要創建一個類,而且已經存在一個類具有你所需要的屬性或方法,那麼你可以將新創建的類繼承該類。 利用繼承的方法,可以重用已存在類的方法和屬性,而不用重寫這些代碼。被繼承的類稱為超類(super class),派生類稱為子類(subclass)。 繼承的特
win 11命令提示字元操作問題: cd變更目錄位置失敗: C:Users\Administrator>cd  \Users\Administrator\Desktop\路徑\public class Hello world { (目錄名稱無效)
Thumbnail
在學Java的人也許多少人會跟小的一樣不是很理解functional interface到底在幹嘛,也覺得語法很多此一舉。希望能夠在此拋磚引玉
Thumbnail
  給對想當Java工程師又興趣的人類,也許你是學生,又或是你正想轉職,我希望你們都不會因為未知而害怕,這條路沒有那麼困難。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
繼承 在Java中,一個類可以由其他類派生。如果你要創建一個類,而且已經存在一個類具有你所需要的屬性或方法,那麼你可以將新創建的類繼承該類。 利用繼承的方法,可以重用已存在類的方法和屬性,而不用重寫這些代碼。被繼承的類稱為超類(super class),派生類稱為子類(subclass)。 繼承的特
win 11命令提示字元操作問題: cd變更目錄位置失敗: C:Users\Administrator>cd  \Users\Administrator\Desktop\路徑\public class Hello world { (目錄名稱無效)
Thumbnail
在學Java的人也許多少人會跟小的一樣不是很理解functional interface到底在幹嘛,也覺得語法很多此一舉。希望能夠在此拋磚引玉
Thumbnail
  給對想當Java工程師又興趣的人類,也許你是學生,又或是你正想轉職,我希望你們都不會因為未知而害怕,這條路沒有那麼困難。