【发布时间】:2020-10-21 03:20:26
【问题描述】:
我试图在运行时安装客户端 SSL 证书。证书已经用 jar 打包,可在以下位置获得
尝试使用以下代码从上述路径读取所有可用的 .cer 文件时,失败了
String rootPath = this.getClass().getClassLoader().getResource("certs/"+activeProfile+"/").getPath();
File folder = new File(rootPath);
File[] listOfFiles = folder.listFiles();
在调试时,我将“rootPath”作为“file:/workspace/mnb-123-no-data-flow-trigger-1.0.0-SNAPSHOT.jar!/BOOT-INF/classes!/certs/dev/ " 。但是文件列表(listOfFiles)为空。
但是使用下面的代码,我可以获取“rootPath”中一个文件的内容
InputStream in = this.getClass().getResourceAsStream("/certs/"+activeProfile+"/server.cer");
File tempFile= File.createTempFile("temporary",".cer");
tempFile.deleteOnExit();
try (FileOutputStream out = new FileOutputStream(tempFile)) {
IOUtils.copy(in, out);
}
displayFile(tempFile);
第一个sn-p的错误是什么?如何从路径中读取所有文件?
【问题讨论】:
-
您不能使用
File.listFiles()列出 JAR 中的文件。它只能列出文件系统上的文件。
标签: java spring-boot google-cloud-functions