2 回答

TA貢獻1802條經驗 獲得超5個贊
您可以使用 Node.js 'exec' 調用外部 Java 程序,如下所示:
Javascript程序
const exec = require('child_process').exec;
// Number 7 is a command line argument to pass to the Java program
exec('java MyJavaApplication 7', function callback(error, stdout, stderr){
console.log(stdout);
});
Java程序
public class MyJavaApplication {
public static void main(String[] args) {
int input = Integer.parseInt(args[0]);
int output = calculate(input);
System.out.println(Integer.toString(output));
}
private static int calculate(int input) {
// Do some complex calculation
return input * input;
}
}
在 Node.js 上,您可以捕獲 Java 程序寫入標準輸出的任何內容。根據輸入的復雜程度,您可能希望將文件名作為參數傳遞給 Java 程序。例如,該文件可以具有 JSON 格式的輸入內容。

TA貢獻1876條經驗 獲得超7個贊
您可以從 nodejs 執行 java 命令。您可以通過 expressjs 路由器運行 exec 命令。對于最好的情況,我會使用 Java 創建另一個 API 并向該端點(微服務)發出請求。但是如果你不想這樣做,你可以試試這個代碼示例;
const express = require('express')
const app = express()
const port = 3000
const exec = require('child_process').exec
app.get('/', (req, res) => {
const child = exec('/usr/bin/java ~/example.jar', => (error, stdout, stderr) {
if (err) {
console.error(err);
res.json({error: err, status: 500, errorOutput: stderr})
return
}
// it is important to have json structure in your output or you need to create a logic which parse the output
res.json(stdout)
})
})
app.listen(port, () => console.log(`Example app listening on port ${port}!`))
添加回答
舉報