java - 如何在 Java 中将字符串转换为可运行代码

标签 java runnable

我将 Java 代码作为字符串存储在数据库中。例如:

String x = "System.out.println(\"X\")";

我需要将其转换为java.lang.Runnable才能在任务执行器服务中运行它。我怎样才能创建它?

private Runnable StringToRunnable(String task){
Runnable runnable = null;

return runnable;
}

最佳答案

Janino是按需编译器的流行选择。许多开源项目都在使用它。

用法很简单。代码

import org.codehaus.janino.ScriptEvaluator;

public class App {

    public static void main(String[] args) throws Exception {

        String x = "System.out.println(\"X\");"; //<-- dont forget the ; in the string here
        ScriptEvaluator se = new ScriptEvaluator();  
        se.cook(x);
        se.evaluate(new Object[0]);    
    }
}

打印x

正如其他人已经指出的那样,从数据库加载代码并执行它可能有点冒险。

关于java - 如何在 Java 中将字符串转换为可运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58275210/

相关文章:

Java Integer类【使用eclipse查看源代码】

java - 启动 hibernate session 时出现空指针异常

java - 在执行可运行的 jar 文件(java 代码)时,我收到 java.lang.reflect.InitationTargetException

java - 进度条: how to create deep copy of original object

JAVA : factorise code -> runnable anonymous class

导出可运行 jar 后出现 Java 异常

java - 获取父框架的requestURL

java - 检查 int 是否在两个数字之间

java - @InjectMocks 在具有基元作为字段的类上

java - 可完成的 future : Invoke a void function asynchronusly