Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java或Groovy运行节点js_Java_Grails_Node.js_Groovy - Fatal编程技术网

从Java或Groovy运行节点js

从Java或Groovy运行节点js,java,grails,node.js,groovy,Java,Grails,Node.js,Groovy,有人尝试过如何从java或groovy运行node.js模块或脚本吗 groovy command.execute()可以吗?如果是这样的话,那么它在不同的op系统中的行为是否相同 值得注意的是,理想情况下,我希望node.js不依赖于系统和node命令中的安装,而是通过./configure和make进行打包,以便将其用作库 谢谢 编辑:基本上我想要这个,这样我就可以使用node.js模块作为Grails插件,这是一个客户端框架(咖啡脚本、jade、stylus等,这是bundeled在早午餐

有人尝试过如何从java或groovy运行node.js模块或脚本吗

groovy command.execute()可以吗?如果是这样的话,那么它在不同的op系统中的行为是否相同

值得注意的是,理想情况下,我希望node.js不依赖于系统和node命令中的安装,而是通过./configure和make进行打包,以便将其用作库

谢谢


编辑:基本上我想要这个,这样我就可以使用node.js模块作为Grails插件,这是一个客户端框架(咖啡脚本、jade、stylus等,这是bundeled在早午餐中提供的)。因此,插件是独立的,没有系统依赖性。

您可能会在中找到所需内容

从网站:

什么是垂直x?

下一代polyglot异步应用程序框架。(以前称为node.x)

  • 在JVM上运行
  • 吸收了node.js等事件驱动框架的优点,然后添加了一些更有趣的内容
  • 一切都是非阻塞的
  • 通晓多种语言。vert.x可以从多种语言使用:Ruby、Groovy、Java、JavaScript、Python、Clojure、Scala。目前我们支持Java和Ruby,并且部分支持Groovy。用您选择的语言编写代码。利用vert.x语言的强大功能
  • 与Java 7中InvokedDynamic的最新发展相一致,并打赌JVM将成为动态语言未来的首要运行时
  • 使您能够极其轻松地创建网络服务器或客户端
  • 真正的可伸缩性。与其他众所周知的事件驱动框架不同,每个进程可以有多个事件循环。不再仅仅为了利用服务器上的核心而旋转32个实例
  • 难以置信的简单并发模型。以单线程的方式编写代码,但要注意它在多个核心之间的伸缩性。不需要担心比赛条件或锁
  • 了解多种现成的网络协议,包括:TCP、SSL、HTTP、HTTPS、WebSocket
  • 从文件系统高效地提供静态文件,完全绕过用户空间
  • 简单的Sinatra/Express风格的基于资源的web路由
  • 分布式事件总线。多个vert.x实例无缝地协同工作,以提供分布式事件总线
  • SockJS支持

是的,您可以只使用command.execute()命令

更优雅的方法可能是构建一个只接受本地主机请求的node.js服务器。但这个groovy是有效的:

    def file = new File("script.js")
    def fileStream = file.newOutputStream()
    fileStream << "console.log('hello from node.js');"
    fileStream.close()

    def command = "/usr/local/bin/node " + file.absolutePath 
    def proc = command.execute() 
    proc.waitFor()

    println "return code: ${ proc.exitValue()}"
    println "stderr: ${proc.err.text}"
    println "stdout: ${proc.in.text}" 
def file=新文件(“script.js”)
def fileStream=file.newOutputStream()

fileStream我不明白为什么人们想从java、.net运行NodeJ?首先阅读nodejs的功能和解决方案。我不知道您指的是哪些其他人,但在本例中,Jor希望跨多个平台使用一致的node.js。我从阅读他的问题中猜到了这一点,假设您有一个大的Grails应用程序和一个大的nodejs库,这两个库都是您所需要的——这两个库都需要多年的工作来实现各种API。然后需要从java运行nodejs。