接受java代码作为用户输入

时间:2014-01-29 14:30:22

标签: java input output execute

我想知道java中是否有一种方法可以接受java代码作为用户输入,然后运行它。例如,用户可以输入:System.out.println(someMethod.toString());,然后打印someMethod的输出。

3 个答案:

答案 0 :(得分:1)

编译用户编写的随机代码可能非常危险。但是您可以尝试使用Java Compiler API,或者如果您想要类似但不严格的java使用groovy(使用GroovyShell对象更容易观察您想要的)

我自己没有尝试过这样的事情,但我在这里找到了一些有用的答案:Convert String to Code

如果你成功,要非常小心。

答案 1 :(得分:0)

我真的不知道你是否可以将用户输入转换为可运行的代码,但是你可以让程序接受与方法相关的单词。

if(input == someMethod)
{
   someMethod();
}

答案 2 :(得分:0)

查看可以插入java字符串并运行命令的beanshell

但要非常小心。访问这个开辟了一个巨大的安全漏洞!