簡體   English   中英

在服務器上設置Java編譯器?

[英]Set up Java compiler on server?

有沒有辦法在服務器上設置Java編譯器來編譯上傳的腳本? 我的用例是用戶可以上傳程序的自定義Java腳本/插件。 然后服務器將編譯這些腳本,並將.jar放在一個文件夾中。 然后,應用程序(用戶正在開發的應用程序)將查詢服務器以下載和使用可用的腳本/插件。 這可能嗎? 如果是這樣,怎么樣?

*編輯:我無法在我的服務器上安裝JDK,因為它是一個共享服務器。 有沒有辦法編譯java而不安裝任何東西(我知道這是一個愚蠢的問題,但問一下是不是有害...)? 我有PHP ....不是那會有所幫助。

我在這里回答了類似的問題:

動態代碼執行

簡而言之,Java Compiler API允許您從包含源代碼的Java Strings創建編譯的Java類文件。

這絕對是可能的。 您基本上只需要服務器將上傳的代碼保存到磁盤,然后使用Runtime#exec()在文件上調用javac 但是,如果服務器要向其類路徑動態添加新類,則可能需要自定義Classloader

NB允許用戶在您的服務器上執行任意Java會打開一個巨大的安全漏洞。

自定義類加載器推薦閱讀:

編輯:對不起,如果這不是你想要的。 我以為你在考慮持續整合。

通常這是使用源代碼控制和構建系統完成的,它被稱為“持續集成”。 我個人正在使用Hg(mercurial)+ Maven + Continuum。

那么當我將新腳本提交給mercurial時,會發生什么事情,continuum將選擇它並讓maven檢查更改,並構建(編譯)項目。 通常一些單元測試甚至集成測試/性能測試等也在此時運行。

可以通過Continuum的Web界面(GUI)檢索生成的二進制文件。

這是它的樣子

至於下載和使用,許多人將生成的工件(jar)“部署”到maven存儲庫,其他應用程序可以從中下載jar並使用它。 部署也可以使用maven自動化。

暫無
暫無

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

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