在 Windows 10 上从 nodejs 调用处理-java

Calling processing-java from nodejs on Windows 10

我在从 nodejs 对 windows 执行处理 java 时遇到了一些问题。当我使用以下

processing-java --sketch=$pwd/sketch/ --run

在控制台中它工作正常并执行草图,window 打开,结果是一个文件写入我需要的目录。

但是当我在节点文件中使用相同的字符串来执行它时,它没有打开window并且没有写入文件,而是执行了回调函数processOutput,因此不知何故处决发生了。

我加了

const exec = require('child_process').exec;

添加到node.js中用于执行子进程的js文件。 $pwd 是相当于 MacOS 上的 pwd 的 PowerShell。 exec 应该执行 shell 命令并调用回调函数。执行回调函数,但不执行草图。

const cmd = 'processing-java --sketch=$pwd/sketch/ --run';
exec(cmd, processOutput);

我错过了什么?任何帮助表示赞赏。 非常感谢,C.

child_process.exec() 不在 powershell 中执行,而是在 CMD 终端中执行。因此你不能使用像 $pwd 这样的 powershell 变量。您可以尝试使用 %CD% 而不是

const cmd = 'processing-java --sketch=%CD%/sketch/ --run';
exec(cmd, processOutput);