[英]Set up Java compiler on server?
有沒有辦法在服務器上設置Java編譯器來編譯上傳的腳本? 我的用例是用戶可以上傳程序的自定義Java腳本/插件。 然后服務器將編譯這些腳本,並將.jar放在一個文件夾中。 然后,應用程序(用戶正在開發的應用程序)將查詢服務器以下載和使用可用的腳本/插件。 這可能嗎? 如果是這樣,怎么樣?
*編輯:我無法在我的服務器上安裝JDK,因為它是一個共享服務器。 有沒有辦法編譯java而不安裝任何東西(我知道這是一個愚蠢的問題,但問一下是不是有害...)? 我有PHP ....不是那會有所幫助。
這絕對是可能的。 您基本上只需要服務器將上傳的代碼保存到磁盤,然后使用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.