java -cp %SIKULI_HOME%\sikuli-script.jar org.python.util.jython E:\automation.sikuli\automation.py "a,b,c"
我收到以下错误
var exec = require('child_process').execFile;
postreq.params将值打印为a,b,c.i想要通过\ automation.py" a,b,c" 我知道如何通过一个以下
exec('java -cp %SIKULI_HOME%\sikuli-script.jar org.python.util.jython E:\automation.sikuli\automation.py postreq.params', function (err, data) {
console.log(err);
console.log(data);
console.log("Sikuli execution started")
// res.end(data);
});
错误
{ [Error: spawn ENOENT] code: 'ENOENT', errno: 'ENOENT', syscall: 'spawn' }
以下命令使用cmd
java -cp %SIKULI_HOME%\sikuli-script.jar org.python.util.jython E:\automation.sikuli\automation.py "a,b,c"
答案 0 :(得分:1)
您解释问题的方式,postreq.params
似乎是一个JavaScript变量。如果是这样,那就是你应该执行的操作:
var exec = require("child_process").exec;
exec('java -cp %SIKULI_HOME%\sikuli-script.jar org.python.util.jython E:\automation.sikuli\automation.py "' + postreq.params + '"', function (err, data) {
我不是Windows的人,所以我不肯定%SIKULI_HOME%
会像你想要的那样扩展。如果没有,那么在评论中使用像凤凰城那样的process.env.HOMEPATH
应该可以解决问题:
exec('java -cp ' + proces.env.HOMEPATH + '\sikuli-script.jar org.python.util.jython E:\automation.sikuli\automation.py "' + postreq.params + '"', function (err, data) {
答案 1 :(得分:0)
execFile
的第一个参数是要运行的文件。您正在传递一整套参数。试试这个:
exec('java', ['-cp', '%SIKULI_HOME%\sikuli-script.jar',
'org.python.util.jython', 'E:\automation.sikuli\automation.py',
'postreq.params'], function (err, data) {
我不确定它是否会扩展%SIKULI_HOME%
因为我不熟悉Windows。