我有一个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属性获取分隔符。

09-29 21:30