2015-02-11 101 views
0

我目前正在進行一項在線評審工作,用戶可以上傳提交給不同語言的編程問題。然後對這些提交進行評分,並將結果返回給用戶。編譯具有不同文件名和類名的Java文件

我一直致力於C++的提交,並允許用戶上傳提交內容,這些提交內容將作爲submission_number.cpp存儲在服務器上(每個提交的細節也存儲在MySQL數據庫中)。

但是,現在我向裁判添加了Java支持,由於Java的規則是在文件中定義的公共類具有相同的類名和文件名,因此我無法在重命名服務器之後編譯服務器上的Java文件。有沒有解決方法?我想修改用戶提交的內容並將類名改爲提交號,但這會在網站上顯示用戶提交內容時產生問題(用戶可以看到每次提交的完整代碼) - 需要更多處理才能替換提交號碼與原始類名稱,也必須存儲在數據庫中。

有沒有辦法編譯沒有文件名== classname規則?或者,有人可以提出比我提到的更好的解決方法嗎?謝謝!

+0

你真的需要重新命名你的意見書嗎?您不能將提交內容存儲在每個提交(或類似的內容)的名爲'submission_number'的文件夾中嗎?在他們提交代碼之前,你能否給提交者一個預定義的類名?如果您確實需要重新命名它們:提交的類是否必須公開? – 2015-02-11 09:15:00

回答

0

不可能將文件命名爲與文件中包含的(public)類不同的名稱。而不是重命名類,我會正確地命名文件。重命名所有對類名稱的引用可能非常棘手(甚至可能包含在字符串中)。也許把它放在與提交號碼相對應的文件夾中。

相關問題