我有以下的Java代碼:編譯器的編碼系統特定的文件分隔符
public interface Defaults {
public static final String DIR_PATH = "a/b/c/";
File DIR_FILE = new File(DIR_PATH);
}
public class Main {
public File directory = Defaults.DIR_FILE;
}
這被編譯在Windows計算機上,並部署到我們當地的關係資源庫。然後它在一臺Linux機器上的Maven構建過程中執行。我結束main.directory.list()
返回null。使用mvnDebug,我看到文件的路徑實際上是a\b\c
!如果我使用調試器將目錄更改爲new File("a/b/c")
,那麼我的代碼就可以工作。
爲什麼編譯器編碼系統特定的分隔符?有解決方案嗎?
謝謝 – 2013-05-06 09:09:32
我很想-1這個;你不應該爲此使用'System.getProperty()'。始終使用'File.separator'和'File.separatorChar':它們更快,類型安全,更易於閱讀,錯字安全,避免字符串文字。 – 2013-05-06 09:29:25
@Aaron感謝您的陳述,使您的總體感,基於您的建議更新了答案 – 2013-05-06 09:34:05