2015-02-11 99 views
0

我目前正在进行一项在线评审工作,用户可以上传提交给不同语言的编程问题。然后对这些提交进行评分,并将结果返回给用户。编译具有不同文件名和类名的Java文件

我一直致力于C++的提交,并允许用户上传提交内容,这些提交内容将作为submission_number.cpp存储在服务器上(每个提交的细节也存储在MySQL数据库中)。

但是,现在我向裁判添加了Java支持,由于Java的规则是在文件中定义的公共类具有相同的类名和文件名,因此我无法在重命名服务器之后编译服务器上的Java文件。有没有解决方法?我想修改用户提交的内容并将类名改为提交号,但这会在网站上显示用户提交内容时产生问题(用户可以看到每次提交的完整代码) - 需要更多处理才能替换提交号码与原始类名称,也必须存储在数据库中。

有没有办法编译没有文件名== classname规则?或者,有人可以提出比我提到的更好的解决方法吗?谢谢!

+0

你真的需要重新命名你的意见书吗?您不能将提交内容存储在每个提交(或类似的内容)的名为'submission_number'的文件夹中吗?在他们提交代码之前,你能否给提交者一个预定义的类名?如果您确实需要重新命名它们:提交的类是否必须公开? – 2015-02-11 09:15:00

回答

0

不可能将文件命名为与文件中包含的(public)类不同的名称。而不是重命名类,我会正确地命名文件。重命名所有对类名称的引用可能非常棘手(甚至可能包含在字符串中)。也许把它放在与提交号码相对应的文件夹中。

相关问题