2014-10-06 69 views
3

在我coleagues机之一,如果你只是看Java中,你可以找到它:为什么perl不能看到windows中存在的文件?

c:\>where java 
C:\Windows\system32\java.exe 

但是,如果我在Perl做这个测试:

c:\>perl -e "print (-e 'c:\\windows\\system32\\java.exe' ? 'found' : 'not found')" 
not found 

(运行精细我机)。我听说过某种奇怪的缓存,其中的文件被假装,所以它们可以工作,但我不知道它可以调用什么,也没有我搜索到的帮助。

+6

大概WOW64文件系统重定向,如果你在64位Windows上运行32位的Perl - 访问'%SYSTEMROOT%\ System32'会重定向到'%SYSTEMROOT%\ Syswow64'。 – 2014-10-06 18:36:40

回答

0

正如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

相关问题