我有一个Java应用程序,它在s启动期间使用xml文件加载设置。
我想在Linux,Windows和许多其他操作系统上运行此应用程序。
问题是文件路径在每个操作系统中都不同。我认为唯一的解决方案是获取OS平台类型并基于它来加载适当的配置文件:
/**
* helper class to check the operating system this Java VM runs in
*/
public static final class OsCheck {
/**
* types of Operating Systems
*/
public enum OSType {
Windows, MacOS, Linux, Other
};
protected static OSType detectedOS;
/**
* detected the operating system from the os.name System property and cache
* the result
*
* @returns - the operating system detected
*/
public static OSType getOperatingSystemType() {
if (detectedOS == null) {
String OS = System.getProperty("os.name", "generic").toLowerCase();
if (OS.indexOf("win") >= 0) {
detectedOS = OSType.Windows;
} else if ((OS.indexOf("mac") >= 0) || (OS.indexOf("darwin") >= 0)) {
detectedOS = OSType.MacOS;
} else if (OS.indexOf("nux") >= 0) {
detectedOS = OSType.Linux;
} else {
detectedOS = OSType.Other;
}
}
return detectedOS;
}
}
有没有更好的办法?
最佳答案
Windows接受路径中的正斜杠,但是最好的解决方案是使用
File.separator属性获取分隔符。