1

我开发了一个桌面应用程序,它执行一些文件写入和读取操作。要获取文件的路径,我使用了以下代码:

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的系统返回错误的路径。?

4

1 回答 1

0

听起来您用来在 Unix 上运行它的 JVM 存在问题。

前提是:

  • 您使用的是正确的 JVM,例如来自 Sun/Oracle 的 JVM,并且

  • 您不会jar用 Windows JVM 中的文件覆盖 JVM 的文件

...该代码将正常工作。您需要重新安装 JVM 并确保没有覆盖任何 JVM jar。

(我无法让我的 Linux JVM 使用 Windows rt.jar[包含File.class],但我不能 100% 保证这是不可能的。当我尝试时,我能做的最好的事情就是让我的 JVM拒绝初始化。)

于 2013-11-07T10:10:22.283 回答