在 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);
我在从 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);