我有以下的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