qq_43698427 2024-04-15 15:38 采纳率: 0%
浏览 35

使用child_process中exec报错,求解答

希望在前端中(非客户端)使用exec调用一个外部的jar包,并拿到返回值,但命令行无论写什么都报同样的错误,不清楚是哪里的问题求解答
Exec报错Uncaught (in promise)
TypeError: Object...) is not a function

img

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-15 15:38
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在尝试使用Node.js中的child_process.exec()方法执行一个外部命令,但在执行过程中遇到了问题。首先,让我们分析一下可能的问题原因。

    child_process.exec() 方法用于执行系统命令并获取输出。它的签名如下:

    const { exec } = require('child_process');
    exec(command, options?, callback);
    
    • command:要执行的命令字符串。
    • options:可选配置对象,例如环境变量、工作目录等。
    • callback:当命令完成时调用的回调函数,参数为 (error, stdout, stderr)

    从你提供的信息来看,错误提示是 TypeError: Object...) is not a function,这通常表示你可能没有正确地传递回调函数。请检查你的代码是否像这样:

    const { exec } = require('child_process');
    
    exec('ls', (err, stdout, stderr) => {
      console.log(err, stdout, stderr);
    });
    

    如果你的目的是运行Java jar文件,你需要确保已将Java可执行文件路径添加到系统的PATH环境变量中,并且命令格式应该是正确的。例如,如果你有一个名为 myapp.jar 的jar文件,你应该使用类似这样的命令:

    const { exec } = require('child_process');
    
    exec(`java -jar path/to/myapp.jar`, (err, stdout, stderr) => {
      if (err) {
        console.error(`执行出错: ${err}`);
        return;
      }
      console.log(`stdout: ${stdout}`);
      console.error(`stderr: ${stderr}`);
    });
    

    确保替换 path/to/myapp.jar 为你实际的jar文件路径。

    如果问题仍然存在,可能是由于其他原因,比如权限问题或者jar文件本身有问题。为了更好地诊断问题,请提供更详细的错误堆栈和你尝试执行的确切命令。如果可能的话,也请确认你的Node.js版本以及操作系统。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月15日

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。