使用ClassLoader.getResourceAsStream(...)从可执行JAR文件本身读取文件对我来说是一个众所周知的概念,但我如何使用Java NIO做同样的事情呢?
目标是具有如下功能:
static String readFullyFromJar(String filename) {
final Path path = Paths.get(Main.class.getResource(fileName).toURI());
final byte[] bytes = Files.readAllBytes(path);
return new String(bytes, CHARSET_ASCII);
}
Run Code Online (Sandbox Code Playgroud)
虽然这在IDE中运行良好,但我得到了一个
java.nio.file.FileSystemNotFoundException
at com.sun.nio.zipfs.ZipFileSystemProvider.getFileSystem(ZipFileSystemProvider.java:171))
Run Code Online (Sandbox Code Playgroud)
当我尝试使用真正的JAR时,即使目标文件位于正确的位置.
| 归档时间: |
|
| 查看次数: |
4082 次 |
| 最近记录: |