我不确定在这种情况下我正在使用UbuntuServer的事实是否重要。当我尝试使用File.mkdirs()方法创建文件夹时,它不会引发异常,只是永远无法工作。
我写一个新问题的原因是因为我想知道是否由于权限而在服务器上创建目录时遇到问题。
String path = /home/username/foldertocreate; File file = new File(path); file.mkdirs();
所以我试图在/ home /username目录中创建一个文件夹。当我在dev框和Eclipse内的tomcat实例上以dev模式运行时,这很好用,但是当代码在服务器上运行时失败。可能是因为在开发人员框中用户已登录并因此打开了写入/home / username文件夹的权限?在服务器上,程序正在运行时实际上并未登录用户…
我可以写一个特定的文件夹吗?
我检查了当前设置为700的文件夹的权限。这可能是问题吗?将此文件夹设置为666或777是否安全?即使用户未登录,该文件夹也可写吗?
更新: 尝试将文件夹权限更改为755,但是没有运气。
如果您使用的是ubuntu的tomcat打包版本,那么它将在另一个用户帐户下运行-最有可能名为“ tomcat”。仔细检查ps aux |grepcatalina-在第一列中将显示tomcat正在运行的用户名。正是这个用户帐户需要能够创建目录/文件。
ps aux |grepcatalina
因此,您可能不想打开任意的主目录以使其可在世界范围内写入,而希望将特定目录配置为tomcat用户可以访问的某个位置。设置755权限将授予所有者读取/写入/执行权限,而其他所有人都将获得读取/执行权限。如果“tomcat”不是所有者,则将无法在这些目录中创建任何内容。但是请不要陷入陷阱chmod777-除非进行快速测试。
chmod777