我最近在Django上创建了一个像codeforces.com这样的在线评判平台。现在,我遇到了一个问题,用户可能会上传一个Java文件进行测试,文件名不同于其中定义的公共类。但是,我应该自动编译它。那么,有什么可能解决这个问题呢?
如果在没有正确重命名的情况下编译文件是不可能的,我需要指导如何使用脚本/代码完成“重命名”?
答案 0 :(得分:2)
这将是一个编译错误。文件名应与公共类名相同。 因此根本不可能
答案 1 :(得分:0)
easiert可能会使用类似JavaParser的内容解析上传的Java文件,然后提取包名和顶级类名并相应地重命名上传的文件。
顺便说一下,确保在漂亮的沙盒环境中运行上传的代码。