Java+;脚本语言(JSR223)

Java+;脚本语言(JSR223),java,api,scripting,Java,Api,Scripting,我正在设计一个框架,我想把它附加到脚本语言API上,使它更加通用和易于使用(对于某些事情,我自己更喜欢脚本编写方式;)。对于像JRuby、Jython或Rhino(JavaScript)这样的语言,有许多流行脚本语言的解释器可用,据我所知,所有这些语言都实现了将它们嵌入Java应用程序中 你有这样做的经验吗?我对处理关联数组(或JavaBean)特别感兴趣。 性能如何(例如,与类似CGI的方法或本机Java方式相比)?在不同的解释器之间切换是否容易(当然这是一个API规范,但我仍然不知道如何处理

我正在设计一个框架,我想把它附加到脚本语言API上,使它更加通用和易于使用(对于某些事情,我自己更喜欢脚本编写方式;)。对于像JRuby、Jython或Rhino(JavaScript)这样的语言,有许多流行脚本语言的解释器可用,据我所知,所有这些语言都实现了将它们嵌入Java应用程序中

你有这样做的经验吗?我对处理关联数组(或JavaBean)特别感兴趣。
性能如何(例如,与类似CGI的方法或本机Java方式相比)?在不同的解释器之间切换是否容易(当然这是一个API规范,但我仍然不知道如何处理特定于语言的问题)?

我已经运行了Rhino、Jython、JRuby和Groovy。它们之间存在着明显的语言差异,整体性能相当缓慢。我发现Groovy是为我的应用程序创建领域特定语言(DSL)的最简单方法。Groovy在包的可访问性和运行时变量方面也是最容易控制的语言,但需要使用Groovy API而不是JSR-223

我觉得Groovy工具/documenation/api与JVM的结合更好,但是ruby/python肯定有很多追随者,对于一些人来说,语法可能更合适。最终,我会在您的框架中尝试所有这些方法并选择一种。多种脚本语言听起来不错,但调试/支持/转换可能会让人头疼


之后:您可以登录BeanShell

谢谢您的输入。我同意支持多种语言是一件麻烦事,而且我已经开始关注Groovy了(特别是因为Grails已经提供了一些我想要使用的功能)。但是,既然你说其他解释器相当慢,我会在JSR-223候选程序之前尝试Groovy API。别误会,所有脚本语言都很慢,但你可能没有为speedHm选择一种。这是有道理的,当然这是一种时间/舒适的权衡。但是由于可用性的原因,任何脚本语言都会使框架受益。