如何 运行 java 在 node.js Express 应用程序中编码

How to run java code in node.js express app

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

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

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

中进行了说明

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

        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();