Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-编译和引用未知名称的类_Java_Linux_Jar_Javac - Fatal编程技术网

Java-编译和引用未知名称的类

Java-编译和引用未知名称的类,java,linux,jar,javac,Java,Linux,Jar,Javac,因此,我的同事和我一直在努力解决一个问题,我们一直在尝试一种“基准”计划。我们希望从用户那里接收一个.java文件,编译它并从我们自己的主类调用它 因此,我们不知道这些文件的名称,但它们有一个我们可以调用的通用方法,例如main()。例如,我们希望将它们编译为类文件,如Test1.class、Test2.class等。但是我们发现类文件的名称需要与其中的类相对应 有没有其他方法可以让它发挥作用?比如把它编译成一个.jar文件,我们是否可以通过这个方法隐式引用它?(不确定这是否可行) 最坏的情况是

因此,我的同事和我一直在努力解决一个问题,我们一直在尝试一种“基准”计划。我们希望从用户那里接收一个.java文件,编译它并从我们自己的主类调用它

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

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


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

简单:使用诸如的工具来处理您的输入。然后:将传入类重命名为您知道的内容

你看:很可能你想要检查你得到的源代码。或者,您真的希望允许用户将执行的任意代码上载到您的系统中吗?因此,当您仔细分析输入的安全问题时,动态重命名接收到的代码应该是“微不足道的”


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

也许这对您在java 9中可能会有所帮助,有REPL,JShell,也可以从代码中调用。嗯,好的,我们也会看看这个选项,非常感谢(y)