如何从嵌套 jar 中的 class 获取 InputStream?
How to get InputStream from class which is in nested jar?
我正在使用 Spring 启动 jar,我的结构中有嵌套的 jar。
我正在尝试从 class 文件中读取原始字节。我想从以下 URL
获取 InputStream
"jar:file:/D:/work/dev/target/first.jar!/BOOT-INF/lib/second.jar!/a/b/c/Data.class"
我试过了
InputStream i = new URL( str ).openStream();
但这不起作用(FileNotFoundException)。
我不想使用 spring-boot 的 API。由于 URL 看起来很标准,我希望应该有办法实现这一点。
"second.jar" 是否在类路径中?
如果是,请使用 Classloader.getResourceAsStream()
例如:
Thread.currentThread().getContextClassLoader().getResourceAsStream("a/b/c/Data.class")
我正在使用 Spring 启动 jar,我的结构中有嵌套的 jar。 我正在尝试从 class 文件中读取原始字节。我想从以下 URL
获取 InputStream"jar:file:/D:/work/dev/target/first.jar!/BOOT-INF/lib/second.jar!/a/b/c/Data.class"
我试过了
InputStream i = new URL( str ).openStream();
但这不起作用(FileNotFoundException)。 我不想使用 spring-boot 的 API。由于 URL 看起来很标准,我希望应该有办法实现这一点。
"second.jar" 是否在类路径中?
如果是,请使用 Classloader.getResourceAsStream()
例如:
Thread.currentThread().getContextClassLoader().getResourceAsStream("a/b/c/Data.class")