修复Java中的硬编码Windows路径,以便它也可以在Linux中使用

时间:2019-07-29 22:37:01

标签: java linux operating-system

我有一个Java文件,该文件具有一些类似以下内容的硬编码路径:

public class ReportBuilder
{
  private static final String DIRECTORY = "META-INF";
  private static final String REPORT_HTML = "report.html";

  public static void createHTMLReport(String projectPath, String artifactName, ValidationResult result) throws MojoExecutionException {
    String directoryPath = projectPath + "\\" + "META-INF";
    String filePath = directoryPath + "\\" + "report.html";
  }
}

Linux使用META-INF创建\,这会导致构建失败。

如何将其切换为独立于操作系统,以便在Linux上运行该操作系统时,它会创建具有正确路径的META-INF

1 个答案:

答案 0 :(得分:2)

使用\

代替硬编码分隔符/File.separator

String filePath = directoryPath + File.separator + "report.html";

或者最好不要使用路径文字,而是创建Path对象,如

Path filePath = Paths.get(directoryPath, "report.html");

您可以将此类Path对象传递给File构造函数/实用程序,但也可以始终通过在实例上调用toString()来获取路径的String值