如何从javascript文件(Node.js)启动java文件

如何从javascript文件(Node.js)启动java文件,javascript,java,Javascript,Java,您好,我有一个jar文件lavalink,确切地说,它基本上是一个音乐模块,现在我想从我的index.js(主bot文件)启动jar文件,因为我不在财务状况下为lavalink服务器支付单独主机的费用,我想在同一主机容器中启动并使用lavalink服务器 不,我没有在浏览器中运行它,我正在使用discord.js包装器与discord API交互以进行后端程序安装 安装子进程npm i子进程这允许您执行shell命令 命令 将exec函数作为命令的第一个参数 exec(“cd~/&java-j

您好,我有一个jar文件lavalink,确切地说,它基本上是一个音乐模块,现在我想从我的index.js(主bot文件)启动jar文件,因为我不在财务状况下为lavalink服务器支付单独主机的费用,我想在同一主机容器中启动并使用lavalink服务器

不,我没有在浏览器中运行它,我正在使用discord.js包装器与discord API交互以进行后端程序安装 安装子进程
npm i子进程
这允许您执行shell命令

命令 将exec函数作为命令的第一个参数

  • exec(“cd~/&java-jar Myjar_file.jar

  • cd~/
    进入jar文件所在的目录

  • java-jarmyjar\u file.jar
    执行您的jar文件

  • &&
    先连续执行前面的命令,然后连续执行后面的命令

范例

const { exec } = require("child_process");

exec("cd ~/<path-to-directory-jarFile>  && java -jar Myjar_file.jar ", (error, stdout, stderr) => {
    if (error) {
        console.log(`error: ${error.message}`);
        return;
    }
    if (stderr) {
        console.log(`stderr: ${stderr}`);
        return;
    }
    console.log(`stdout: ${stdout}`);
});
const{exec}=require(“子进程”);
exec(“cd~/&&java-jarmyjar_file.jar”,(错误,stdout,stderr)=>{
如果(错误){
log(`error:${error.message}`);
返回;
}
如果(标准){
log(`stderr:${stderr}`);
返回;
}
log(`stdout:${stdout}`);
});
在NodeJS中执行Shell命令:


在节点中,您可以执行命令行命令-您的节点应用程序在哪个操作系统上?ubuntu 18什么的我有点笨,所以我可以问一下路径是home/container/src还是仅仅/src,因为在主机中,我们在其主目录中有一个容器,所以我们的路径将相对于主机主目录中的容器?我会ecommend使用相对路径tild代表您的主目录,因此您可以执行
~/container/src
这项操作的好处是,如果您将项目移动到其他unix系统,它仍然可以工作,并且您不必更新您的路径,但是我需要更改一些内容来让您知道
exec(“cd~/&&java-jar-Lavalink.jar“,(错误,stdout,stderr)=>{
如果我添加了cd~/container,它就会被添加到我的容器中,并返回到home/container/container@EliteGaming您更改了什么,~/?如果您认为这有帮助,您可以在向上/向下投票符号下方将其标记为已接受。