【问题标题】:Internal Java Language? (Language run within java) [closed]内部 Java 语言? (在java中运行的语言)[关闭]
【发布时间】:2015-03-23 10:21:59
【问题描述】:

我已经开始了一个大型项目,需要某种可以存储为纯文本并在执行期间在 JVM 中快速运行的脚本语言。我需要一种简单、可定制的语言,具有各种 Java API/库来解释,并且可以存储在一个大型 XML 文件中,既可以在属性中,也可以在 XML 节点内部。

这是必需的,因此我的程序可以在神经网络中动态编写稍后将使用的代码。

【问题讨论】:

  • 您可以在 Java 中动态加载类。为什么不编写 java 代码,运行编译器,然后动态加载你的类?
  • 这不是我想要完成的。我要做的是从单独的 XML 文件中定义的字符串动态运行脚本,性能至关重要。
  • 所以你真的认为编写自己的语言会比专业人士更有效率吗?
  • 我认为你不明白我想要做什么。我不是在写代码,程序是动态的。我想做的是找到它将用什么语言编写,然后使用它,将其存储在 xml 文档中。
  • @Tarik - 例如,“在 Java 中”运行一种语言是什么意思?

标签: java xml


【解决方案1】:

LUA 非常适合您希望嵌入 Java 的解释型语言:

http://lua-users.org/wiki/LuaImplementations

更主流的可能性是从 Java 调用 Jython:

http://www.jython.org/jythonbook/en/1.0/JythonAndJavaIntegration.html

另一种可能性是仅使用 Java 并在运行时调用编译器:

http://stackoverflow.com/questions/2946338/how-do-i-programmatically-compile-and-instantiate-a-java-class

使用解释性语言会更快地开始执行脚本,但执行本身会更慢。使用 Java 编译器的前期成本会更高,但执行速度会更快,而且您将坚持使用单一语言。

【讨论】:

  • 谢谢。我会深入研究这一点。感谢您对我的问题的理解,因为它有点太宽泛了。这将是完美的。
猜你喜欢
  • 2011-01-19
  • 1970-01-01
  • 2014-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多