gpt4 book ai didi

Java - 编译并引用一个未知名称的类

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:51 26 4
gpt4 key购买 nike

因此,我和我的同事一直在努力解决一个问题,我们一直在涉足“基准测试”类程序。我们想从用户那里接收一个 .java 文件,编译它并从我们自己的主类中调用它。

所以我们不知道文件的名称是什么,但它们有一个我们可以调用的通用方法,例如 main(),例如,我们希望将它们编译为类文件,例如 Test1.class、Test2 .class 等。但是我们看到类文件的名称需要与其中的类相对应。

是否有另一种方法可以让它发挥作用?比如把它编译成.jar文件,我们是否可以通过这个方法隐式引用它? (不确定那是可能的)

最坏的情况,我们可以将输入文件限制为已知文件名,我们只是想吸引更勤奋的头脑,如果我们可以使用更优雅的解决方案。

最佳答案

简单:使用类似 JavaParser 的工具处理您的输入。然后:将传入的类重命名为您知道的名称。

你看:很可能你想检查你得到的源代码。或者您是否真的希望允许用户将任意 代码上传到您的系统并在那里执行?因此 - 当您仔分割析该输入是否存在安全问题时 - 即时重命名收到的代码应该是“花生”。

如果这不起作用:为什么不要求您的用户向您提供所有这些信息呢?意思是:你正在处理一个复杂的问题,因为你允许用户有很多自由度。但是,当您要求他们提供他们打算在上传中使用的类/文件名时,他们的体验真的会受到影响吗?

关于Java - 编译并引用一个未知名称的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45939211/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com