簡體   English   中英

簡單Java程序的JavaScript包裝器

[英]Javascript wrapper for simple java program

我想安排一個計算機模擬,使用超級簡單的IO(僅打印語句),而不是在瀏覽器中運行。 我可以用Java編程,但是對Java知之甚少。 我有一種感覺(如果我錯了,請糾正我),可能可以安排一些HTML / Javascript,使其可以整齊地包裝單獨的純Java塊-可以單獨存儲在文件中,也可以存儲在較大的文件中帶有標記為...的區域的文件

**從這里開始**

**在這里結束**

...這樣,只要IO僅限於簡單的打印語句,只知道Java的人就可以在那里編寫Java程序並在瀏覽器中查看它。

這可能嗎? 已經完成了嗎?

編輯:多一些背景...我寫了一個計算機模擬的現實世界的現象,我希望學者能夠玩和修改。 與JavaScript相比,學者更可能了解Java-因此,我想隱藏所有JavaScript內容,讓用戶只看到Java。

可能可以安排一些html / javascript,以便它可以整齊地包裝純Java的單獨塊

不會。Java就像Java語言一樣,汽車就像地毯一樣。 無論瀏覽器對Javascript的支持程度如何,都不能保證它們包含Java運行時。 他們可能會這樣做,但是支持Java與支持Flash的機會幾乎相同(並贏得Flash)。 這只是一個插件。

除非您將整個Java編譯器解釋器都用javascript包裝(將它們編譯為javascript),否則不能完全在客戶端執行此操作。 即使那樣,它仍然會很慢。 可以做什么:

選項1:

  1. 讓用戶編寫一段Java代碼
  2. 將塊發送到服務器
  3. 添加一堆Java代碼,並將其存儲到文件中。 即:包括,類頭,方法頭,兩個右花括號
  4. 調用服務器上的Java編譯器。 這要求您在服務器上安裝JDK。
  5. 編譯完類后,將其與其他一系列靜態類和清單文件一起打包到jar文件中。
  6. 使用此JAR文件的URL響應客戶端。
  7. 客戶端創建一個引用此JAR的新appletobject標記,然后服務器將其饋送到客戶端。
  8. 如果用戶的計算機上有一個JRE,並且允許Java插件 applet本身運行,那么您就完成了。

這是最簡單的方法,但是它次優(尤其是客戶端必須確認的所有安全警告)。 您可以改為:

選項2:

  • 向客戶端提供完全靜態的小程序
  • 不要在已編譯的類中再打包幾個類
  • 而不是在運行時創建新的applet元素,而是將URL傳遞給現有的applet
  • 然后,小程序加載已編譯的類,然后使用新的實現重新啟動仿真。

也:

  • Jars會占用很多空間(尤其是如果您不進行類加載),因此,如果上傳的源代碼沒有被明顯地保存,則您可能還希望在投放時自動刪除Jars。

選項3:

您可以將Java編譯為Javascript,但是僅支持非常有限的Java子集。

一個這樣的編譯器是Google Web Toolkit的組成部分,該工具包旨在從Java編寫整個網站。 用戶不需要在其計算機上安裝Java Runtime Environment,而是需要將自己限制為可有效地編譯為Javascript的Java子集(如果我沒記錯的話,您需要擦除Java.util的一半) 。


底線:您可以讓用戶編寫Java,然后讓他觀察結果,但是Java編譯的繁重工作應由服務器來完成。 如果用戶沒有Java插件,那么他將無法編寫任何Java代碼並希望它能夠運行。 另外,您最好知道如何用Java進行編碼,包括類加載和Javasript-> applet通信。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM