我开发了一个桌面应用程序,它可以执行一些文件写入操作。要获取文件的路径,我使用了以下代码:
static final String workingDir = System.getProperty("user.dir");
public static final String resourcesPath =
workingDir + File.separator + "src" + File.separator;
Windows变量resourcesPath
中的包含C:\app\src\
但是当我在基于unix的系统上执行应用程序时,这会返回/home/eboss\src\
。
在基于unix的系统中/home/eboss
是来自System.getProperty("user.dir");
的路径,这是正确的,但当我与File.separator
结束时,它会追加路径\
。结果我得到(没有这样的文件或目录)错误。
为什么基于unix的系统返回错误的路径。
答案 0 :(得分:0)
听起来你在Unix上运行它的JVM存在问题。
提供:
您正在使用正确的JVM,例如Sun / Oracle中的JVM,
您没有使用Windows JVM中的文件覆盖JVM的jar
文件
...该代码将正常工作。您需要重新安装JVM并确保不会覆盖任何JVM jar。
(我无法让我的Linux JVM使用Windows rt.jar
[包含File.class
的那个],但我不能100%保证它不可能。我试过,我能做的最好就是让我的JVM拒绝初始化。)