【问题标题】:Call to node js application inside java project在java项目中调用节点js应用程序
【发布时间】:2015-07-14 11:34:32
【问题描述】:

我已经使用以下代码创建了新的 java 项目,它使用项目路径打开命令行。在 java 项目中,我添加了两个文件(在根目录下)app.js 和包 json,现在我想调用此节点 app.js

我使用以下代码打开运行正常的命令行

Process newProc = Runtime.getRuntime().exec("cmd /c start cmd.exe");
OutputStream out = newProc.getOutputStream();

如果我手动输入命令行(由上面的程序打开):node app.js node js启动正常强>。 我想用 java 代码 之类的

来完成所有这些工作
Runtime.getRuntime().exec("cmd /c start cmd.exe node app.js");

或者Runtime.getRuntime().exec("node app.js");

当我尝试这个时它不起作用......

我的 Java 项目如下所示

myProj 
   src
   web
   app.js
   package.json

更新 这是 app.js 文件

var express = require('express');

var app = express();

app.get('/', function (req, res) {

    res.send("Test app running");
});


var server = app.listen(3005, function () {
        console.log("listen" + 3005)
    }
)

【问题讨论】:

    标签: javascript java node.js


    【解决方案1】:

    尝试ProcessBuilder 而不是Runtime

    ProcessBuilder pBuilder = new ProcessBuilder("C:\\Program Files\\nodejs\\node.exe", "C:\\temp\\app.js");
    Process process = pBuilder.start();
    
    process.waitFor();
    

    【讨论】:

    • 谢谢,我试了一下,但没有任何反应请查看我的更新并查看 nodejs 文件,我用这个 javascript 文件创建了简单的 java 程序,并将其放在项目的根目录下并尝试运行它...
    • 我自己试过了...查看我的更新。是否有可能结束主线程?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 2020-03-08
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    相关资源
    最近更新 更多