首页 > 其他分享 >打包Jar后的文件读取

打包Jar后的文件读取

时间:2023-06-05 15:13:05浏览次数:25  
标签:resourceUrl 读取 Jar file getFile new 打包

对于

 org.springframework.core.io.ClassPathResource

本地环境时,使用方法 getFile() ,可以正常读取文件,但打成Jar后,读取失败,其主要原因是:在jar里,返回的是一个Jar协议地址:jar:file:/xxx/xx.jar!/xxxx

而 getFile 方法的实现为

public static File getFile(URL resourceUrl, String description) throws FileNotFoundException {
    Assert.notNull(resourceUrl, "Resource URL must not be null");
    if (!"file".equals(resourceUrl.getProtocol())) {
        throw new FileNotFoundException(description + " cannot be resolved to absolute file path because it does not reside in the file system: " + resourceUrl);
    } else {
        try {
            return new File(toURI(resourceUrl).getSchemeSpecificPart());
        } catch (URISyntaxException var3) {
            return new File(resourceUrl.getFile());
        }
    }
}

解决方法为:使用 getInputStream() 方法

而对于文件夹的读取可以使用

Resource[] resources = new PathMatchingResourcePatternResolver().getResources(ResourceUtils.CLASSPATH_URL_PREFIX + path);

 

标签:resourceUrl,读取,Jar,file,getFile,new,打包
From: https://www.cnblogs.com/qingyibusi/p/17457785.html

相关文章

  • 【python】打包py文件
    pyinstaller安装方法步骤:①安装打包用的模块pipinstallPyInstaller②创建虚拟环境pipinstallpipenv#用于搭建虚拟环境pipenvinstall#创建一个新的虚拟环境pipenvshell#进入这个虚拟环境pipinstall--#通过pip安装程序所需要的模块PyInstaller-i1.i......
  • IO流:文件字节输入流-每次读取一个字节
        ......
  • c语言基于链表的文件存储与读取
    今天写了一下如何将链表中的数据存储到文件中head为链表的起始结点写入文件voidfilewirte(LinkListhead){LinkListfd;FILE*p=fopen("student_grad.txt","w");if(p==NULL){printf("没有东西");getchar();exit(1);}fd=head......
  • .NET使用System.Speech轻松读取文本
    System.Speech是.NET框架的一部分,提供了语音识别和语音合成的功能。通过使用System.Speech命名空间中的类,开发人员可以在.NET应用程序中实现语音识别功能。在本文中,我将演示如何使用System.Speech.NET,这是开发语音应用程序比较牛逼的内库。它适用于.NET4.x和.NETCore以上版本......
  • SpringBoot打包成WAR包的时候把第三方jar包打到LIB文件夹下和把第三方jar包打入到Spri
    SpringBoot打包成WAR包的时候把第三方jar包打到LIB文件夹下和把第三方jar包打入到SpringBootjar包中转载首先我们应该知道我们把SPRINGBOOT项目打包成WAR包和JAR包的时候分别需要何种插件我们最常用的把springBoot打成jar包的插件是下面这样的一个插件,这是把我们的springBoot......
  • JavaFX系列---【新建JavaFx项目和打包】
    新建JavaFx项目和打包1.安装jdk17,并配置环境变量下载地址:https://www.oracle.com/java/technologies/downloads/#java172.安装wix3和启用.NETFREAMEWORK3.5下载地址:https://github.com/wixtoolset/wix3/releases/tag/wix3112rtm3.安装scencebuilder下载地址:https://ope......
  • 在java环境下读取xml文件的方法主要有4种:DOM、SAX、JDOM、JAXB
    dom4j中文乱码[url]http://blog.sina.com.cn/s/blog_3d25e30f0100cyzi.html[/url]org.dom4j.io.XMLWriterxmlWriter=neworg.dom4j.io.XMLWriter(new[color=red]FileOutputStream[/color](fileName));在java环境下读取xml文件的方法主要有4种:DOM、SA......
  • 利用Ant与Proguard混淆引用的子工程项目jar包及打war包
    当前的web项目有引用到子工程项目,而且多个子工程项目也有引用到其它的工程项目,现要求利用Ant自动将web项目打包成war包,其中引用到的子工程项目需打成jar包,而且必须是混淆后的jar包。其中混淆代码的工具选择了开源的Proguard([url]http://proguard.sourceforge.net/[/url]),可以运行p......
  • 如何把jar发布到中央仓库
    1、在网站https://issues.sonatype.org/secure/Dashboard.jspa注册一个账号(请记住对应的账号和密码,之后需要用到)此外,Sonatype还提供了一个名为OSS的系统,具体的构件发布是在这个oss系统上,SonatypeOSS地址:https://oss.sonatype.org这里的用户名和密码就是上面在JIRA中注册的,在这......
  • Python中解包与打包 */**
    解包打包本质:解包的逆向操作打包是将多个值组合成一个可迭代对象的过程。常见的打包方式是使用元组或列表或字典。打包操作使用=符号进行赋值,将多个值组合成一个可迭代对象。......