【问题标题】:Why would I like to execute scripting language in JVM [closed]为什么我想在 JVM 中执行脚本语言 [关闭]
【发布时间】:2016-08-04 10:49:35
【问题描述】:

我无法理解为什么以及在哪种情况下我想在服务器端的 JVM 中运行脚本语言。我的意思是我们已经在 J​​AVA 中提供了很棒的库......为什么我不使用它们来做一些事情而不是在 JVM 中运行脚本呢? 请帮助我理解这个概念,有人可以告诉我一两个用例,在这些用例中,在服务器端在 JVM 中运行脚本比使用 JAVA 库更有优势。

【问题讨论】:

  • 这是一个基于意见的问题。但无论如何,拥有更多选择并不能带走什么。此外,Java 有很棒的库,但它们是否涵盖了所有内容?不。始终选择最适合您当前任务的工具。有时是 Java,有时是 Javascript,有时甚至是 PERL。

标签: javascript java rhino nashorn


【解决方案1】:

这里更普遍的问题是“我为什么要在 Java 中使用 某种脚本语言> 执行代码?”,其中 Javascript 只是这种语言的一个示例。

引用this article:

一些 Java 应用程序的要求使得必须与脚本语言集成。例如,您的用户可能需要编写驱动应用程序、扩展应用程序或包含循环和其他流控制结构的脚本。在这种情况下,支持脚本语言解释器是明智的,它可以读取用户脚本,然后针对 Java 应用程序的类运行它们。

基本上:如果您希望允许您的用户以需要丰富的编程语言的方式自定义您的应用程序。

为什么要专门使用 Javascript?这取决于您的应用程序。可能有理由选择它(例如,您的目标用户已经知道 Javascript),也可能不选择(例如,Lua 在游戏行业中更受欢迎的脚本编写)。

【讨论】:

    【解决方案2】:

    我能想到的一个用途是:

    • Javascript 引擎可用于计算算术表达式 它们是字符串格式。

    示例 :: 字符串表达式 = "2+4";

    以下是使用 java 脚本引擎执行此操作的示例的链接。

    https://stackoverflow.com/a/3423360/4626402

    【讨论】:

    • "Java 没有提供任何方法来实现这一点" 当然可以。您可以在 Java 中实现算术表达式解析器和求值器。
    • @AndyTurner 我的意思是java没有内置的方法来实现这一点,至少据我所知。有的话请回复。无论如何,我已经从我的回答中删除了该声明。
    猜你喜欢
    • 1970-01-01
    • 2012-10-25
    • 1970-01-01
    • 2014-06-30
    • 2011-03-12
    • 2014-03-19
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    相关资源
    最近更新 更多