使用不同的文件名和类名编译Java文件

使用不同的文件名和类名编译Java文件,java,Java,我目前正在做一个在线评委,用户可以上传不同语言的编程问题提交。然后对这些提交的内容进行评分,并将结果返回给用户 我一直工作在C++提交,允许用户上传提交,这些文件将被存储在服务器上的(每个提交的详细信息也存储在MySQL数据库中)。p> 但是,现在我正在向judge添加Java支持,在重命名Java文件后,我无法在服务器上编译这些文件,因为Java的规则是,文件中定义的公共类具有相同的类名和文件名。有解决办法吗?我曾想过修改用户提交的内容,并将类名更改为提交编号,但这会在网站上显示用户提交的内容

我目前正在做一个在线评委,用户可以上传不同语言的编程问题提交。然后对这些提交的内容进行评分,并将结果返回给用户

我一直工作在C++提交,允许用户上传提交,这些文件将被存储在服务器上的(每个提交的详细信息也存储在MySQL数据库中)。p> 但是,现在我正在向judge添加Java支持,在重命名Java文件后,我无法在服务器上编译这些文件,因为Java的规则是,文件中定义的公共类具有相同的类名和文件名。有解决办法吗?我曾想过修改用户提交的内容,并将类名更改为提交编号,但这会在网站上显示用户提交的内容时产生问题(用户可以看到每次提交的完整代码)-需要更多处理才能将提交编号替换为原始类名,也必须存储在数据库中


有没有一种不用filename==classname规则的编译方法?或者,有人能提出比我提到的更好的解决方案吗?谢谢

无法将文件命名为与文件中包含的(公共)类不同的名称。我不会重命名该类,而是正确命名该文件。重命名对类名的所有引用(甚至可以包含在字符串中)可能非常棘手。可能会将其放在与提交编号对应的文件夹中。

您真的需要重命名您的提交吗?对于每次提交(或类似的内容),您不能将提交内容存储在名为
submission\u number
的文件夹中吗?在提交者真正提交代码之前,你能给他们一个预定义的类名吗?如果您确实需要重命名它们:提交的类必须是公共的吗?