我使用:
生成一个java App(用于查询本地数据库的REPL)repl = = require('child_process').spawn('java', ['-cp', '...list of libs...', ,{ cwd: '...path to env...', env: process.env, customFds: [-1, -1, -1] });
REPL加载正常,因为我可以在stdout中看到它的输出,但是stdin.write命令没有完成。然而,我可以直接在节点进程本身的控制台窗口中编写它们(这很奇怪,因为我没有.resume()它)。 我打印出了生成过程的标准输出,它看起来像这样:
{ _handle:
{ writeQueueSize: 0,
socket: [Circular],
onread: [Function: onread] },
_pendingWriteReqs: 0,
_flags: 0,
_connectQueueSize: 0,
destroyed: false,
bytesRead: 0,
bytesWritten: 0,
allowHalfOpen: undefined,
writable: true,
readable: false }
似乎没有定义'fd',并且.readable
也返回false。怎么解决这个问题?
(这都是在windows机器上,节点v0.6.6)
感谢
答案 0 :(得分:0)
文档明确指出the customFds
option was deprecated,因为他们无法在Windows上使用它。
虽然-1
的数组暗示不应该使用它,但由于不推荐使用整个选项,请尝试完全删除它,看看是否能解决问题。