2010-11-19 102 views
0

我有一個網站。我想要做以下事情:運行Java throgh服務器

有一個輸入框,用戶可以鍵入一個java程序。然後,他們可以按下「運行」,並吐出標準輸出。我怎樣才能做到這一點?

我試着想在php中使用exec(「javac $ filename」),只編譯並運行java程序,但似乎沒有工作。有任何想法嗎?

我想做一個「學習Java」網站,我需要用戶能夠通過在我的網站上鍵入空格來玩代碼。我只是無法弄清楚如何使用php,html或類似的東西來運行Java。

謝謝!

+0

有點相關http://stackoverflow.com/questions/4208096/calling-javac-from-php – superfro 2010-11-19 02:09:11

+3

通過服務器運行Java會破壞主板。 – 2010-11-19 02:10:19

+0

@Hamish我以爲你在攻擊Java性能,但也許這個笑話是關於在電子上澆注液體的;-) – 2010-11-19 02:35:50

回答

0
  1. 做到這一點!讓人們運行一個applet或其他東西。除了安全隱患之外,你的服務器也可能會停下來。
  2. 如果你忽略(1)只使用一個合適的應用程序服務器,並讓人們寫自己的jsps(確保緩存關閉)。這是一個非常簡單的文件IO。
3

是的,可以按照你所描述的內容來完成。但是這是一個巨大的安全風險。你不想讓未知/不可信任的人能夠在你的服務器上執行任意代碼。至少你會希望對這個想法非常小心,並且可能更好,修改這個想法,以便任意代碼不能被輸入和執行。

+0

我只想告訴你,沒有必要用你的名字手動簽名你的帖子,因爲你的名字已經在帖子中顯示。有關更多信息,請參見[this](http://meta.stackexchange.com/questions/5029/are-taglines-signatures-disallowed/5038#5038)。我爲你編輯它。 – 2010-11-19 02:28:09

+0

我沒有用我的名字簽署我的帖子。關於安全風險,我只使用基本代碼,用戶只能實現功能,他們不會被允許導入任何東西,所以他們不可能做任何瘋狂的事情。既然你說它可以完成,你能描述一種方式嗎? – CodeGuy 2010-11-19 02:39:55

+1

@Robert:對不起,我正在和@Peter談話。 :) – 2010-11-19 03:05:13