Ant Mac OS X Appbundler当前目录路径问题

比阿特丽斯·卡西斯塔(Beatrice Cassistat)

我正在尝试将Java应用程序编译为Mac OS X应用程序捆绑包。我添加以下设置来设置当前工作目录:

<bundleapp...>
    ...
    <option value="-Duser.dir=$APP_ROOT/Contents/Resources"/>
</bundleapp>

在目录/资源/中有一个配置目录。

执行它时,我得到这个奇怪的行为:

new File("config/").exists() 返回假

new File("config/").getAbsolutePath() 返回/path/to/bundled/app/MyApp.app/Contents/Resources/config

new File("config/").getAbsoluteFile().exists() 返回true

我不知道为什么会这样,我想防止在我的代码中到处添加getAbsoluteFile()。

有什么想法吗?

(注意:我正在使用Oracle JDK 8)

让·瓦格蒂(Jean Waghetti)

getAbsolutePath解析相对于当前user.dir属性的相对路径javadocs

在UNIX系统上,相对路径名通过针对当前用户目录解析而成为绝对路径。

尽管javadocs指出

默认情况下,java.io包中的类始终针对当前用户目录解析相对路径名。该目录由系统属性user.dir命名,通常是在其中调用Java虚拟机的目录。

该错误报告指出,相对路径的“更简单”的获取器(不是“绝对”)将针对虚拟机被调用的路径进行解析。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章