我目前正在进行在线评判,用户可以将提交内容上传到不同语言的编程问题。然后对这些提交进行评分,并将结果返回给用户。
到目前为止,我一直致力于C ++提交,并允许用户上传提交内容,这些内容将作为submission_number.cpp
存储在服务器上(每个提交的详细信息也存储在MySQL数据库中)。
但是,现在我正在向判断添加Java支持,由于Java规则对文件中定义的公共类具有相同的类名和文件名,因此在重命名后无法在服务器上编译Java文件。这有解决方法吗?我想过修改用户提交的内容并将类名更改为提交号,但这会在网站上显示用户提交时产生问题(用户可以看到每次提交的完整代码) - 需要更多处理才能更换带有原始类名的提交号,也必须存储在数据库中。
有没有一种方法可以在没有filename == classname规则的情况下进行编译?或者,有人可以提出比我提到的更好的解决方法吗?谢谢!
答案 0 :(得分:0)
无法将文件命名为与文件中包含的(公共)类不同。我没有重命名类,而是正确命名文件。重命名对类名的所有引用(甚至可以包含在字符串中)可能非常棘手。也许将它放在与提交编号相对应的文件夹中。