java中exists返回值_linux下java File.exists() 正常情况下返回值是false 是什么原因?...

在Linux环境下,Java的File.exists()方法返回false,即使文件路径正确。问题可能与文件或其父目录的权限有关。尝试chmod 777无效,寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本帖最后由 suxuanhua 于 2017-11-22 02:06 编辑

今天打算更新个人的JavaWeb小项目,项目在 win10 tomcat 中部署能正常运行。

但是打包成 上传到 腾讯云 UbuntuServer 16.04,解压,把项目根目录中的所有文件,放到 tomcat ROOT目录中,将 ROOT目录中原有的文件删除。

(说一下放ROOT的原因吧:刚用IDEA的时候没设置好,导致链接跳转都不包含项目名,懒得修改,就直接替换ROOT目录)

运行tomcat 之后,项目发生错误(如图),经过几个钟的排查之后,

发现 Java 的 exists() 在 linux 下 ,就算通过文件路径找到了文件,并获取了文件名,返回值还是false。win 则是正常的的true。

网上查了之后,看到百科这么一篇文章:https://baike.baidu.com/item/file_exists/357436?fr=aladdin

文章说,file_exists 需要检测的父级文件夹权限,不是 777 会返回false 。

虽然文章中的是php ,应该和 Java 的exists() 相同。

想问一下这种情况Java 要怎么解决,是试过将整个项目、tomcat都chmod 777 了都还是不行。

贴代码://通过这种方式,在static 方法内获得项目的classes 目录,让后通过Properties 加载 .properties 配置文件。

String path = new Object() {

public String getPath() {

//加"/"表示当前项目根目录,不加表示当前运行类的目录

return this.getClass().getResource(PropertiesfilePath).getPath();

}

}.getPath().substring(1);

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值