【问题标题】:How could I call Java code dynamically?如何动态调用 Java 代码?
【发布时间】:2010-10-09 22:47:22
【问题描述】:

我怎样才能编写像与 eval 函数一起使用的 javascript 代码一样执行的 Java 代码?

我想要实现的是这样的:

System.execute("String str = \"test\"; System.out.println(str);");

这将打印单词“test”。 (10 倍德曼)

一个代码示例会有很大帮助。

【问题讨论】:

  • 可能只是我,但你的问题没有多大意义。 JavaScript 是一种 Web 脚本语言,其中 java 在 java 框架中运行。您可以构建 java 小程序,但我认为这不是您所指的。
  • 我猜对 JavaScript 的引用只是他想要实现的一个例子。
  • 我认为他想要类似: System.execute("String str(\"test\"); System.out.println(str);");这将打印单词“test”。

标签: java dynamic eval


【解决方案1】:

查看 BeanShell 或 Groovy。两者都会给你合理的解决方案——但这些解决方案依赖于我对你的问题的解释,这可能是有缺陷的。

【讨论】:

    【解决方案2】:

    我使用了 Java 6 附带的 JavaScript 引擎,它运行良好。引擎的性能非常非常不错。

    查看页面http://java.sun.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html

    【讨论】:

      【解决方案3】:

      我相信编译器 API 存在于当前的 Java SE 6 中。请参阅javadoc

      有关详细信息和示例,请参阅this blog post

      【讨论】:

        【解决方案4】:

        为了完整起见,编译器 API 将出现在 Java 的下一版本中。

        【讨论】:

        • 编译器 API 在 Java 6 中。它可以工作,但使用起来很难看。但是,如果您没有 Java 6,则可以使用 BeanShell 和 JCI。
        猜你喜欢
        • 2019-07-13
        • 2017-02-10
        • 1970-01-01
        • 2011-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-14
        相关资源
        最近更新 更多