如何编译一个任意名称与公共类名

时间:2017-10-03 18:04:01

标签: java compilation

我最近在Django上创建了一个像codeforces.com这样的在线评判平台。现在,我遇到了一个问题,用户可能会上传一个Java文件进行测试,文件名不同于其中定义的公共类。但是,我应该自动编译它。那么,有什么可能解决这个问题呢?

如果在没有正确重命名的情况下编译文件是不可能的,我需要指导如何使用脚本/代码完成“重命名”?

2 个答案:

答案 0 :(得分:2)

这将是一个编译错误。文件名应与公共类名相同。 因此根本不可能

答案 1 :(得分:0)

easiert可能会使用类似JavaParser的内容解析上传的Java文件,然后提取包名和顶级类名并相应地重命名上传的文件。

顺便说一下,确保在漂亮的沙盒环境中运行上传的代码。