gpt4 book ai didi

java - 无法从 URL 获取 URI,获取 null?

转载 作者:行者123 更新时间:2023-11-30 09:28:25 30 4
gpt4 key购买 nike

我的可执行 jar 中有一个模板文件 (.xls)。不需要在运行时我需要为这个文件创建 100 多个副本(稍后将唯一地附加)。用于获取 jar 文件中的资源 (template.xls)。我正在使用

URL templateFile=G1G2Launcher.class.getClass().getResource(File.separator+"Template.xls");
System.out.println("URL-->"+templateFile);
System.out.println("URI For Source-->"+templateFile.toURI().getPath());
sourceFile=templateFile.toURI().getPath();

我在 templateFile.toURI.getPath() 得到一个空值可能是什么原因?这是我得到的:

URL--> jar:file:/home/eketdik/Desktop/G1G2-KD@Tool.jar!/Template.xls
URI For Source-->null

实际上,我将此 URI 传递给 File 构造函数以为其获取文件对象..(用于复制它)。所以堆栈跟踪是-->

java.lang.NullPointerException
at java.io.File.<init>(File.java:251)
at gui.Utility.copyfile(Utility.java:29)
at printer.Printer.printFinalSiteWiseReportsForSignOff(Printer.java:1408)

请指出我哪里出错了??

最佳答案

在运行时修改 Jar 文件是不可能的。

因此您可以将文件作为输入流获取,然后在 jar 之外创建副本。下面的代码可帮助您创建所需的文件。

InputStream in = G1G2Launcher.class.getClass().getResourceAsStream("file.xls")
OutputStream out = new FileOutputStream(new File("file.xls"));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = in.read(bytes)) != -1) {
out.write(bytes, 0, read);
}

关于java - 无法从 URL 获取 URI,获取 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14052843/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com