我有一个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
?
答案 0 :(得分:2)
使用\
/
或File.separator
String filePath = directoryPath + File.separator + "report.html";
或者最好不要使用路径文字,而是创建Path
对象,如
Path filePath = Paths.get(directoryPath, "report.html");
您可以将此类Path
对象传递给File
构造函数/实用程序,但也可以始终通过在实例上调用toString()
来获取路径的String值