SyntaxError:Node Javascript中的意外标记ILLEGAL

时间:2013-12-30 11:03:49

标签: java node.js jar

我正在尝试使用节点JavaScript执行命令。

var spawn = require('child_process').spawn,
   cmd  = spawn('java -cp C:\Java\jdk1.7.0_45\lib\dom4j.jar;C:\Java\jdk1.7.0_45\lib\geronimo-stax-api_1.0_spec-1.0.1.jar;C:\Java\jdk1.7.0_45\lib\gson-2.2.4.jar;C:\Java\jdk1.7.0_45\lib\mysql-connector-java-5.1.6.jar;C:\Java\jdk1.7.0_45\lib\ooxml-schemas-1.0.jar;C:\Java\jdk1.7.0_45\lib\poi-3.9-20121203.jar;C:\Java\jdk1.7.0_45\lib\poi-ooxml-3.9.jar;C:\Java\jdk1.7.0_45\lib\xmlbeans-2.5.0.jar;C:\Java\jdk1.7.0_45\lib\xmlbeans-xmlpublic-2.6.0.jar;C:\Java\jdk1.7.0_45\lib\excelreader.jar astral.excelreader.Main 11 33 fsdds', []);

然后它显示以下错误:

SyntaxError: Unexpected token ILLEGAL
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:901:3

如果我从命令中删除这两个jar (C:\Java\jdk1.7.0_45\lib\xmlbeans-2.5.0.jar;C:\Java\jdk1.7.0_45\lib\xmlbeans-xmlpublic-2.6.0.jar;),那么它不会显示上述错误。但我想在那个罐子里放一些类文件。

如果我直接在Windows命令提示符下运行第一个命令(不使用节点js),那么它将执行正确。 如果我添加以下这些罐子,有人知道为什么会出现这个错误吗? C:\Java\jdk1.7.0_45\lib\xmlbeans-2.5.0.jar; C:\Java\jdk1.7.0_45\lib\xmlbeans-xmlpublic-2.6.0.jar;

2 个答案:

答案 0 :(得分:2)

javascript中的字符串c:\windows\应该是这样的:

c:\\windows\\

并产生语法:spawn(command, [args], [options])

spawn('java', ['-cp', 'c:\\java\\...'])

答案 1 :(得分:1)

你必须加倍反斜杠。而不是

'java -cp C:\Java\jdk1.7.0_45\lib\dom4j.jar;...'

'java -cp C:\\Java\\jdk1.7.0_45\\lib\\dom4j.jar;...'