【问题标题】:How can I use a child process to run a .class file from a parent directory?如何使用子进程从父目录运行 .class 文件?
【发布时间】:2020-11-05 19:09:51
【问题描述】:

在这种情况下,我使用的是 Node.js ChildProcess。假设应用程序文件(例如 index.js)在 folder1 中。这个文件夹也有folder2,这是类文件所在的位置。所以,当我从folder1 调用spawn 时,命令的当前目录是folder1。但是,我做不到java ./folder2/MyFile

这是我尝试过的:

async function run(path){
    let child = spawn('java', [path], {
            stdio: [process.stdin, process.stdout, process.stderr] //for testing purposes
        })
}

./folder2/MyFile 上使用函数run 返回:

Error: could not find or load main class ..folder2.MyFile

我认为这与 java 和类路径有关。我看到了一个涉及将类路径设置为目标目录 (folder2) 的答案,但它没有做任何事情。

简而言之,如何从不同的目录运行 .class 文件?

【问题讨论】:

    标签: javascript java node.js child-process


    【解决方案1】:

    您可以使用 exec 而不是 spawn ,这样您就可以使用两个带有 & 符号的命令,当第一个命令完成时第二个命令运行而不会失败。 我认为这可能对你有用。

    const exec = require('child_process').exec;
    exec("cd ./folder2 & java MyFile", function(
        error: string,
        stdout: string,
        stderr: string
    ) {
        console.log(stdout);
        console.log(error);
        console.log(stderr);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 1970-01-01
      • 2018-10-14
      • 2011-02-23
      • 2014-07-08
      相关资源
      最近更新 更多