java - file.exists() 意外返回 false

标签 java linux

所以我有这样的东西:

File testFile = new File("/opt/tester/etc/test.properties");
if(!testFile.exists()){
   System.exit(0) }

它总是退出,查看调试器我看到文件是用“\opt\tester\etc\test.properties”的“路径”属性和 1 的“prefixLength”创建的

该文件存在于系统中,我可以对它执行“ls”和"file"命令,它工作正常, 在阅读权限等信息后,我将文件的属性更改为:

-rw-rw-rw-. 1 root root 475 Jun 18 14:11 /opt/tester/etc/test.properties

之前:

 -rw-------. 1 user1 user1 475 Jun 18 14:11 /opt/tester/etc/test.properties

(我的 java 类以 root 身份运行,路径上没有符号链接(symbolic link))

知道为什么会这样吗? 谢谢。

更新: 刚刚在同一目录中创建了一个文件“test”,并在其中添加了一个带有“nano”的词,但仍然无法正常工作。所以我猜这个文件没问题,是别的东西

更新 2: 将我的书列为 Unresolved 问题。我认为这与我用/设置的路径有关,并且在查看调试器时它存储为\。但是当没有通过调试器运行时运行良好。所以,我认为是我的环境造成的(运行在Linux上的代码被运行在Windows 7上的Mule Studio 1.0.0(基于eclipse 3.6.1)远程调试)。

更新 3: 读到一些东西说可能 VM 上的 32 位调试器和客户端中的 64 位调试器可能与故障有关..所以我把所有东西都移到了我的本地机器上,现在是调试正常。

最佳答案

我怀疑您的错误是由于未将 if 条件包含在 {} 大括号中造成的。在没有大括号的情况下,如果 ifSystem.exit(0) 之间有任何一行,那么将始终调用退出(因为它不是if 子句)。

关于java - file.exists() 意外返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11211613/

相关文章:

php - 如何记录使用 ssh 完成的事件

java - 即时时间范围

java - 输入流中的相对路径

java - 与线相交的多边形

java - 驱动程序 oracle.jdbc.OracleDriver 声称不接受 jdbcUrl

node.js - 在 Linux 服务器和路由上运行两个应用程序

linux - gcc中共享库函数的静态链接

java - 我在哪里可以下载 mp3plugin.jar 以用 Java 代码播放 MP3?

c++ - 在带有 Qt 的 Linux Ubuntu 平台上使用 OpenCV 2.2 显示图像

linux - 在后台启动进程,获取 PID,并在 Shell 中写入标准输入