我无法使用参数.js文件的绝对路径在cygwin下运行PhantomJS。以下是我设置PhantomJS的步骤:
已下载PhantomJS 1.9.7 for windows
将PhantomJS可执行文件复制到c:\ cygwin64 \ bin \
将解压缩的PhantomJS下载文件中的文件“hello.js”复制到我的cygwin主目录
开始使用cygwin / xterm
如果我跑:
which phantomjs
在我的cygwin xterm中,它正确响应:
/usr/bin/phantomjs
如果我从我的主目录运行以下命令:
phantomjs hello.js
PhantomJS正确回应:
Hello, world!
如果我另一方面运行这个:
phantomjs /home/user1/hello.js
PhantomJS回复:
Can't open '/home/user1/hello.js'
如果我这样做:
/usr/bin/phantomjs /home/user1/hello.js
PhantomJS仍在回复:
Can't open '/home/user1/hello.js'
它为我尝试的每个绝对路径执行此操作。为什么PhantomJS不能使用绝对文件路径?我在我的示例中显示的路径没有任何空格,特殊字符等,所以我不确定问题是什么。
我也尝试在Windows下的命令提示符下运行相同的测试,有时它会表现出相同的行为,但并非总是如此。我似乎无法在Windows下再现这个错误,所以我不确定还有什么要说的。
有谁知道问题可能是什么?
答案 0 :(得分:2)
我找到了解决方案。通过cygwin运行本机Windows程序需要您将cygwin的POSIX路径转换为Windows样式的路径。在上面的示例中,以下工作:
phantomjs "`cygpath -w /cygdrive/c/cygwin64/home/user1/hello.js`"
返回:
Hello, world!
我还不确定反击是什么,但至少我找到了解决方案。