我想知道java中是否有一种方法可以接受java代码作为用户输入,然后运行它。例如,用户可以输入:System.out.println(someMethod.toString());
,然后打印someMethod
的输出。
答案 0 :(得分:1)
编译用户编写的随机代码可能非常危险。但是您可以尝试使用Java Compiler API,或者如果您想要类似但不严格的java使用groovy(使用GroovyShell对象更容易观察您想要的)
我自己没有尝试过这样的事情,但我在这里找到了一些有用的答案:Convert String to Code
如果你成功,要非常小心。
答案 1 :(得分:0)
我真的不知道你是否可以将用户输入转换为可运行的代码,但是你可以让程序接受与方法相关的单词。
if(input == someMethod)
{
someMethod();
}
答案 2 :(得分:0)
查看可以插入java字符串并运行命令的beanshell。
但要非常小心。访问这个开辟了一个巨大的安全漏洞!