不幸的是,Nashorn已被弃用,因为有很多示例。
我们了解GraalVM可以编译和运行应用程序。我们不需要这个。
我们只想在我们的Java应用程序中运行一些javascript。加载一个javascript文件,然后定期调用其上的方法,然后让javascript调用java作为响应。 javascript是我们需要能够在浏览器客户端或服务器上运行的引擎。
有没有人看到过使用GraalVM在spring app或更好的grails中运行js文件的方法?我们使用gradle。
需要明确的是,我们不想使用graalvm来编译我们的应用程序。我们只想要一个可以在现有应用程序中运行js的实用程序。
示例和文档很少。似乎也没有任何gradle插件或选项来支持它。
还是我们应该坚持使用Nashorn?
最佳答案
毫无疑问,运行GraalVM JavaScript引擎的推荐方式是GraalVM。在GraalVM和GraalVM本机镜像之间,您似乎有一些误解。 GraalVM是功能齐全的JDK8,它确实支持Java应用程序的提前编译,但没有强制要求。您可以像使用其他任何JDK8一样使用GraalVM(例如,将JAVA_HOME
指向GraalVM目录)。您仅会获得多语种支持,并且可能会获得更好的性能。
如果您正在运行JDK11 +,请查看示例maven项目https://github.com/graalvm/graal-js-jdk11-maven-demo(在此处回答Use graalvm via the standard JDK 11)
如果您在JDK8上运行并且坚持不使用GraalVM,那么您的选择将非常有限。您仍然可以使用GraalVM javascript引擎,但是在解释器模式下只会导致性能下降。我链接到的示例存储库在pom.xml
文件中具有“jdk8”配置文件,该配置文件显示了如何在库存jdk8上运行。
关于java - 如何使用GraalVM在现有的grails或spring应用程序中运行javascript?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57955860/