gpt4 book ai didi

java - 如何在 Node.js Express 应用程序中运行 Java 代码

转载 作者:行者123 更新时间:2023-12-01 20:22:58 24 4
gpt4 key购买 nike

我一直使用node.js进行开发。有一种情况我需要执行用Java编写的程序。一个具有主要功能的简单类。顺便说一下,我有 .java 文件。所以我需要的是从 Node.js 应用程序调用一个 java 程序,以便该程序启动并进行一些计算,然后将其打印在屏幕上。我需要在某些 Node.js 变量中处理该值,以便我可以在我的 Node.js Express 应用程序中使用它。

我已经看到了一些建议子进程、spawn 和 exec 等的解决方案。但我已经尝试了所有这些并收到错误。有时 ENONET 错误,有时缓冲区错误。可能是因为我使用 Ubuntu 操作系统时给出了针对 Windows 平台的答案。我的 Main.java 文件位于 node.js 程序的父目录中。需要您的宝贵支持。

最佳答案

论坛上有不同的答案,但是,我提供了运行 java 程序所涉及的步骤的分解。第1步.从yourCode.java创建.jar文件。(需要在您的系统上安装Java开发工具包)。该过程在链接https://www.tecmint.com/create-and-execute-jar-file-in-linux/中进行了解释。

完成后,将 .jar 文件放入 Node.js 应用程序的父目录中,并使用以下代码。这是一个完整的功能,可以从express app中调用。

        const executeJava = () => {
return new Promise((resolve, reject) => {
const child = exec('java -jar main.jar', function (error, stdout, stderr) {
console.log('Value at stdout is: ' + stdout); // here you get your result. In my case I did'nt needed to pass arguments to java program.
resolve(stdout);
if (error !== null) {
console.log('exec error: ' + error);
reject(error);
}
});
})
}

// you can call this function from your node.js express app using
// const myResult = await executeJava();

关于java - 如何在 Node.js Express 应用程序中运行 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58927254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com