从 Eclipse 中导出 JAR - Class 文件和 jar 中的 config.xml 文件 - 如何在 xx.class 中使用此配置文件
Exported JAR from Eclipse - Class file and config.xml file inside jar - How do I use this config file in xx.class
我正在尝试使用 config.xml 文件自定义范围报告。当来自 eclipse 的 运行 时一切正常。我的 config.xml 位于资源文件夹中。但是,当我导出为可运行的 JAR 文件时,代码因 NPE 而失败,因为它找不到 config.xml 文件。我尝试了各种选项,还尝试写入临时文件,如下所示。
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
InputStream resource = classLoader.getClass().getResourceAsStream(extentfileName);
final File tempFile = File.createTempFile("extent-config", ".xml", new File("./"));
System.out.println(tempFile.getAbsolutePath());
tempFile.deleteOnExit();
try (FileOutputStream out = new FileOutputStream(tempFile)) {
IOUtils.copy(resource, out);}
在上面的代码中,创建了临时文件但没有内容。非常感谢任何帮助
由于没有其他答案,更新我用作答案的解决方法
String resource = "extent-config.xml";
InputStream input = MyClassName.class.getResourceAsStream("/resources/" + resource); String body = IOUtils.toString(input, StandardCharsets.UTF_8.name());
extenttempFile = File.createTempFile("extent-config", ".xml", new File("./")); extenttempFile.deleteOnExit();
试试 (FileOutputStream out = new FileOutputStream(extenttempFile)) {IOUtils.write(body, out);}
report.loadConfig(extenttempFile);
我正在尝试使用 config.xml 文件自定义范围报告。当来自 eclipse 的 运行 时一切正常。我的 config.xml 位于资源文件夹中。但是,当我导出为可运行的 JAR 文件时,代码因 NPE 而失败,因为它找不到 config.xml 文件。我尝试了各种选项,还尝试写入临时文件,如下所示。
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
InputStream resource = classLoader.getClass().getResourceAsStream(extentfileName);
final File tempFile = File.createTempFile("extent-config", ".xml", new File("./"));
System.out.println(tempFile.getAbsolutePath());
tempFile.deleteOnExit();
try (FileOutputStream out = new FileOutputStream(tempFile)) {
IOUtils.copy(resource, out);}
在上面的代码中,创建了临时文件但没有内容。非常感谢任何帮助
由于没有其他答案,更新我用作答案的解决方法
String resource = "extent-config.xml";
InputStream input = MyClassName.class.getResourceAsStream("/resources/" + resource); String body = IOUtils.toString(input, StandardCharsets.UTF_8.name());
extenttempFile = File.createTempFile("extent-config", ".xml", new File("./")); extenttempFile.deleteOnExit();
试试 (FileOutputStream out = new FileOutputStream(extenttempFile)) {IOUtils.write(body, out);}
report.loadConfig(extenttempFile);