在我同事的一台机器上,如果你只是寻找 java,你可以找到它:
c:\>where java
C:\Windows\system32\java.exe
但是,如果我用 perl 做这个测试:
c:\>perl -e "print (-e 'c:\\windows\\system32\\java.exe' ? 'found' : 'not found')"
not found
(这在我的机器上运行良好)。我听说过某种奇怪的缓存,文件会在其中进行假安装,因此它们可以正常工作,但我不知道它可以被称为什么,而且我在 google 上搜索也没有任何帮助。
最佳答案
正如 Andrew Medico 在对问题的评论中提到的,问题是运行 32 位 perl 引起的困惑。
有问题的系统有“c:\windows\system32\java.exe”,但没有“c:\windows\syswow64\java.exe”。如果“c:\windows\system32\java.exe”似乎不存在,我可以通过查找“c:\windows\sysnative\java.exe”来解决我的问题。
我发现这个描述非常有用:
http://www.samlogic.net/articles/32-64-bit-windows-folder-x86-syswow64.htm
关于windows - 为什么 perl 看不到 Windows 中存在的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26222532/