【问题标题】:Running Java Code from Within Java [duplicate]从 Java 内部运行 Java 代码 [重复]
【发布时间】:2010-12-10 12:15:39
【问题描述】:

可能的重复:
using eval in Java
Loading external source code and using them internally (by re-compiling or something)

我想在 Java 中模拟一个“eval”,以便该函数接受一个字符串(一些源代码),编译它,运行它,然后返回返回值。

我知道我可以使用 JavaCompiler API 编译它,但我不确定实际运行这样的代码的最佳方式。 Runtime.exec 觉得这个任务太重了……我不想每次运行这个“eval”函数时都生成另一个 java 进程,只是为了评估“30+20”之类的。这将是缓慢且资源密集型的。

最后,它必须能够运行任何 java 代码,因此依赖 Java 内部的脚本语言评估器是行不通的(例如,如果输入是比 '30+20' 更复杂的 Java)

还有其他选择吗?

【问题讨论】:

标签: java java-compiler-api


【解决方案1】:

我自己从未这样做过,但是您可以编写自己的 ClassLoader 并将字节码加载到 JVM 中。上面有一个tutorial

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 2019-06-11
    • 2013-12-05
    • 2013-06-23
    • 1970-01-01
    相关资源
    最近更新 更多