如何读取Jar包里面的文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何读取Jar包里面的文件相关的知识,希望对你有一定的参考价值。

读取Jar包里面的文件方法:

1、右键点击jar文件,选择打开方式,然后设定为压缩文件打开的方式,这时候就会看到桌面上的jar文件变成了一个压缩包的图标。

2、双击桌面的jar文件,就可以以压缩包的形式查看jar文件里面的具体内容了。

参考技术A 方法1:
@Test
public void usingSpringMethod() throws Throwable
PathMatchingResourcePatternResolver patternResolver = new PathMatchingResourcePatternResolver();
Resource[] resources = patternResolver.getResources("com/yyy/1.txt");//<--②
if (resources != null && resources.length > 0)
InputStreamReader inputStreamReader = new InputStreamReader(resources[0].getInputStream());//<---①
char[] data = new char[100];
inputStreamReader.read(data);
assertEquals((new String(data)).trim(), "ddddd");


上面①处,使用resource[0].getInputStream()代替原来的
引用
resources[0].getFile()
当然,②处的资源路径表达式,可以使用Spring的其它方式表示:
方式1:
Java代码
Resource[] resources = patternResolver.getResources("classpath:com/yyy/1.txt");
方式2:
Java代码
Resource[] resources = patternResolver.getResources("classpath*:com/yyy/1.txt");
方法2:
直接原生的JDK方式读取
Spring对资源路径的表达方式非常灵活,这是首选使用Spring加载资源的原因。当然,使用JDK原生的ClassLoader也可以加载JAR中的资源文件,如下所示:
@Test
public void usingJDKMethod() throws Throwable
URL url = getClass().getClassLoader().getResource("com/yyy/1.txt");//<--①
InputStreamReader inputStreamReader = new InputStreamReader(url.openStream());
char[] data = new char[100];
inputStreamReader.read(data);
assertEquals((new String(data)).trim(), "ddddd");

唯一的限制是,在①处不再支持classpath:或classpath*:的前缀了。

jar命令如何 打包文件夹里面的除了其中一个文件abc.jar的其他的所有文件

要除了abc.jar哦,其他都要打包进去,一条jar命令,等待你的回答
1 在其他目录打包,jar命令 例如e:\test1\test11

jar cvf e:\test1\test11\test11.jar -C e:\test1\test11\ .

但是包含test11.jar也打进去了

2 在当前目录

jar cvf test11.jar .

可以不包含test11.jar

参考技术A 可以吧abc.jar先移出来啊,然后再用jar-cvf打包,如果abc.jar是你导入的jar包的话需要打包后再导入 参考技术B 如果文件不多 可以jar -cvf 一个一个指定文件名 要是多的话 最好是剪切了再打包本回答被提问者采纳 参考技术C jar命令不带过滤的。 先把abc.jar移走,打包完,再移回来。

以上是关于如何读取Jar包里面的文件的主要内容,如果未能解决你的问题,请参考以下文章

jar打包后怎么读取里面的文件

如何将Properties配置打入jar包并读取内容

如何修改jar包里面的.class文件

Spring boot 如何读取jar包外面的properties文件

jar包如何使里面的jar包生效

如何将jar包导入eclipse