Java有一个ScriptEngine系统,允许您以不同的语言运行/评估语句.
我知道JavaScript支持的事实,但我找不到任何其他语言来使用它.
例如,Ruby实现了吗?
我一直在阅读Rhino作为在Java代码中实现JavaScript的有用方法.
阅读了一段时间后,在谷歌和这里搜索,我找不到一个真正的原因,我将在Java中使用JavaScript.
您是否可以指出在使用Rhino进行常规Java应用程序时发现的一些现实世界优势?
可能重复:
Scala中的"eval"
我知道scala是一种编译语言,但我也知道我可以动态地将类加载到jvm中,我可以在运行时调用scala编译器,最后但并非最不重要的是我也有一个很棒的repl,所以让scala作为一个脚本语言应该是可能的.
所以我需要运行一些任务:
简单解释:
val src = """ println("Hello World") """
interpret(src)
Run Code Online (Sandbox Code Playgroud)
调用外部函数:
object A{
def foo =
println("Hello World")
}
val src = """ A.foo """
interpret(src)
Run Code Online (Sandbox Code Playgroud)
实现功能:
trait T{
def foo:String
}
val src = """ class A extends T{ def foo = "Hello World" } """
interpret(src)
val t = loadClassAndCreatInstance.asInstanceOf[T]
println(t.foo)
Run Code Online (Sandbox Code Playgroud)
能够解决我所有的问题会很棒.
这是我的情况:
我可以访问Java类中的Rhino Context对象.我想阅读一堆.js文件并将它们传递给Rhino上下文以对它们进行评估.我真的不想在脚本上下文中使用.js文件中的函数,因为我只是在.js文件中声明的变量可用(这是工具验证的一种问题).
理想情况下,我会读入并尝试一次评估每个文件,而不是逐行.我注意到在Context中有一个方法(参见Rhino API)evaluateReader().我的第一个猜测是我应该获取我想要加载的所有文件,仔细检查它们,并调用此方法为每个文件传递某种读取器对象,而且非常好,现在它们都在我的脚本环境中.
因此,假设我在那里正确的轨道,有人可以告诉我在Java脚本环境中使用.js文件是否有任何良好的做法,或者如果有更好的方法,或者你做了一些其他方式等?
这里没有查找实现细节,只是来自其他人的反馈,这可能已经在他们的一些代码中完成了.使用Java编写脚本语言对我来说是新的.
我已经编写了一个控制台应用程序(带有main函数的.java类),并且我喜欢在执行我的BIG项目之前调用这个main(或者,例如一些静态方法)如何使用MAVEN(脚本?)?
java ×5
javascript ×2
rhino ×2
built-in ×1
classloader ×1
interpreter ×1
lua ×1
maven ×1
scala ×1
scriptengine ×1
scripting ×1