无法使用绝对路径在cygwin下运行PhantomJS

时间:2014-09-17 04:27:28

标签: cygwin phantomjs

我无法使用参数.js文件的绝对路径在cygwin下运行PhantomJS。以下是我设置PhantomJS的步骤:

  1. 已下载PhantomJS 1.9.7 for windows

  2. 将PhantomJS可执行文件复制到c:\ cygwin64 \ bin \

  3. 将解压缩的PhantomJS下载文件中的文件“hello.js”复制到我的cygwin主目录

  4. 开始使用cygwin / xterm

  5. 如果我跑:

    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下再现这个错误,所以我不确定还有什么要说的。

    有谁知道问题可能是什么?

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。通过cygwin运行本机Windows程序需要您将cygwin的POSIX路径转换为Windows样式的路径。在上面的示例中,以下工作:

phantomjs "`cygpath -w /cygdrive/c/cygwin64/home/user1/hello.js`"

返回:

Hello, world!

我还不确定反击是什么,但至少我找到了解决方案。