【问题标题】:unable to run PhantomJS under cygwin using absolute paths无法使用绝对路径在 cygwin 下运行 PhantomJS
【发布时间】:2014-09-17 04:27:27
【问题描述】:

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

  1. 已下载 PhantomJS 1.9.7 for windows

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

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

  4. 已启动 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 下重现此错误,所以我不确定还有什么要说的。

有谁知道问题出在哪里?

【问题讨论】:

  • 你试过/cygdrive/c/home/user1/hello.js吗?
  • 我试过/usr/bin/phantomjs /cygdrive/c/cygwin64/home/user1/hello.js,它仍然说:Can't open '/cygdrive/c/cygwin64/home/user1/hello.js'

标签: cygwin phantomjs


【解决方案1】:

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

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

返回:

Hello, world!

我还不确定反引号是做什么用的,但至少我找到了解决方案。

【讨论】:

  • 你应该accept你的答案。另外,请查看您的其他问题。我想你至少找到了一个你可以接受的答案。
猜你喜欢
  • 1970-01-01
  • 2023-04-08
  • 2014-05-31
  • 2011-10-01
  • 1970-01-01
  • 2018-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多