【发布时间】:2016-04-11 17:16:23
【问题描述】:
我即将发布一个 java 应用程序,但我有一个小问题:我已经通过 eclipse 在 Mac OS X 上完全开发了该应用程序,我使用绝对路径来引用放置在的目录:
"/Users/Name/Documents/folder"
我使用System.getProperty"os.name" 来确定我当前是否在 Mac 上运行,如果是,我将使用该文件夹,否则我将使用另一个文件夹示例:C:\Users\Name\Documents\folder。
问题是:我必须在这个字符串后面附加一个可能包含其他子文件夹的名称。我知道在 Mac 上分隔文件夹我使用 "/" 和 Windows "\"。我该如何解决这个问题?有什么建议吗?
【问题讨论】:
-
首先使用
System.getProperty("user.home")获取用户的主目录。如果你使用File,你可以一直使用/,Windows 不在乎,但基于 Linux 的操作系统可以。你也可以使用File.separator,我相信它使用System.getProperty("file.separator"),并且尽可能不要硬编码它们;) -
so on windows 将同时工作 "C:/Users/...." 和 "C:\Users\...." ?
-
@Levenlol 是的。只有 windows 命令行坚持使用反斜杠。
-
@Levenlol 说到点子上了。如果您使用
File,它会将/转换为` automatically. If you usegetAbsolutePath` 或getCanonicalPath我相信它们也会被翻译,因此您可以保存它们或在需要时将它们传递给外部进程
标签: java windows macos jar executable-jar