精华内容
下载资源
问答
  • 获取jar包中资源文件

    2016-06-23 14:16:24
    ClassLoader.getSystemResourceAsStream(filename); ClassLoader.getSystemResource...可以获取jar包中资源 jar:file:/C:/Users/Administrator/Desktop/speech.jar!/Speak.dll sun.net.www.protocol.jar.JarURL
    ClassLoader.getSystemResourceAsStream(filename);
    ClassLoader.getSystemResource(filename);
    

    可以获取jar包中的资源

    jar:file:/C:/Users/Administrator/Desktop/speech.jar!/Speak.dll
    sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream@12204a1


    展开全文
  • 1、现货区文件的输入流 eg.静态资源的路径在/rootProject/resource/atoms/clear.js WebkitDriver.class.getClassLoader().getResourceAsStream("test/clear.json"));
  • 因为jar运行部署后无法获取内部文件路径,所以不能使用path InputStream resourceAsStream = new ClassPathResource("files/official_doc_model.docx").getInputStream();
    因为jar运行部署后无法获取内部文件路径,所以不能使用path
    InputStream resourceAsStream = 
    new ClassPathResource("files/official_doc_model.docx").getInputStream();
    

    在这里插入图片描述

    展开全文
  • public WXConfig() throws Exception ... // 获取URL URL url = getClass().getClassLoader().getResource("apiclient_cert.p12"); // 通过url获取File的绝对路径 File file = new File(url.getFile()); InputStre.

    一. 服务环境:

       spring cloud 微服务 jar 方式进行部署。

    二. 文件在项目中的位置:在这里插入图片描述

    三. 情景再现:

       在内网本地测试环境(因为小程序需要https认证的服务才能交互,小程序无法在内网给测试测,因此没有打jar包进行测试),在idea中使用下面方式与前端进行联调,使用花生壳进行外网映射,接收微信回调,一切进行的都很顺利。

     public WXConfig() throws Exception {
            //从微信商户平台下载的安全证书存放的路径
            // 获取URL
            URL url = getClass().getClassLoader().getResource("apiclient_cert.p12");
            // 通过url获取File的绝对路径
            File file = new File(url.getFile());
            InputStream certStream = new FileInputStream(file);
            this.certData = new byte[(int) file.length()];
            certStream.read(this.certData);
            certStream.close();
        }
    

       等部署到外网环境进行测试的时候,进行退款的时候必须认证证书,可是证书却获取不到,出现以下异常:

    java.io.FileNotFoundException: file:/usr/local/package_project/xuanle-prod2/business-xuanle-service-prod2.jar!/BOOT-INF/classes!/apiclient_cert.p12 (No such file or directory)
    	at java.io.FileInputStream.open0(Native Method)
    	at java.io.FileInputStream.open(FileInputStream.java:195)
    	at java.io.FileInputStream.<init>(FileInputStream.java:138)
    	at com.project.util.wx.WXConfig.<init>(WXConfig.java:31)
    	at com.project.service.wx.MiniPayService.refundToWeixin(MiniPayService.java:306)
    	at com.project.service.wx.MiniPayService.refund(MiniPayService.java:288)
    	at com.project.controller.wx.MiniProgramController.miniRefund(MiniProgramController.java:92)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    

    四. 解决问题

       然后想办法解决问题,我们使用maven将项目打成jar包时,此时的 .jar是一个可执行文件。虽然通过之前的方式可以拿到证书的路径,但是却无法通过new File(String filePath) 获取路径中的文件。因为 .jar本身就是一个可执行文件,又怎么从文件中获取文件呢?
       既然ClassLoad 能获取文件,那就通过他来获取文件流,在通过文件流转换成字节数组就完美解决问题!

    public WXConfig() throws Exception {
            //从微信商户平台下载的安全证书存放的路径
            InputStream certStream = WXConfig.class.getClassLoader().getResourceAsStream("apiclient_cert.p12");
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int ch;
            while ((ch = certStream.read(buffer)) != -1) {
                outputStream.write(buffer,0, ch);
            }
            this.certData = outputStream.toByteArray();
            certStream.read(this.certData);
            certStream.close();
        }
    
    展开全文
  • 获取Jar包中文件

    2019-06-05 10:11:56
    获取Jar包中资源文件 写在前面 实在是觉得受不了网上的一些文章了,感觉还是自己写来的靠谱一点。 就是想从Jar包中获取资源文件的内容,就是这么一个简单的需求,搞得查了半天也没查出来具体怎么操作,都是从...

    获取Jar包中的资源文件

    写在前面

    实在是觉得受不了网上的一些文章了,感觉还是自己写来的靠谱一点。
    就是想从Jar包中获取资源文件的内容,就是这么一个简单的需求,搞得查了半天也没查出来具体怎么操作,都是从ClassLoader开始嘚啵嘚的讲。

    我***(容我报个粗口),jar包不就是一个zip包吗?我按照zip包的方式读取出来不就行了吗?我是获取里面的资源文件,不是加载里面的class文件~

    直接上代码

    先上代码,再说其他的:

    URL url = new URL("jar:file:/home/contract.jar!/META-INF/MANIFEST.MF");
    InputStream inputStream = url.openStream();
    byte[] bytes = IOUtils.toByteArray(inputStream);
    String content = new String(bytes);
    System.out.println(content);
    

    上面是最简单的,就是我要从jar包里面把MANIFEST读出来,就是单纯把内容读出来,不扯别的~
    只要你有jar包,按照这种方式就没错,需要注意一下几点:

    • 1、URL格式必须正确:jar:file:{jar包路径}!{内部路径},如果对URL不熟悉,请参考:https://docs.oracle.com/javase/tutorial/networking/urls/
    • 2、使用流的方式读取,当然其中的IOUtils我用的是apache提供的,每个人都可有自己的选择嘛~

    简单说明

    其实里面就只有一个重点关注的类:sun.net.www.protocol.jar.JarURLConnection
    当然这个类有一个继承的抽象父类:java.net.JarURLConnection
    下面是大致的处理流程:
    大概处理流程
    各位童鞋可作为简单参考~

    展开全文
  • 获取jar包中资源文件 1. web项目下classpath文件获取  方法(1)File resourcefile = ResourceUtils.getFile("classpath:application.properties");  方法(2) Resource resourcefile = new ...
  • Springboot 获取jar包中文件

    千次阅读 2018-09-19 16:44:09
    Springboot 复制jar包中文件 在spring项目中,如果以war包的方式运行在tomcat中,在运行前会把war包解压到webapps目录下,resource下的文件也会以普通文件的形式存在,如果有一些特殊文件需要读取/执行/使用,则以...
  • springboot 打包成jar 下载文件失败 jar:file:/usr/project/jar/scmp-7684.jar!/BOOT-INF/classes!/receiptTemplate/ZTEReceipt.doc 代码如下 String downloadPath = "receiptTemplate/purchaseOrder.xlsx"; ...
  • InputStream resourceAsStream = new ClassPathResource("excel/template.xlsx").getInputStream();
  • 获取jar包中文件路径

    千次阅读 2017-09-30 11:30:17
    /**-----------------------------------------------------------------------  *getAppPath需要一个当前程序... *Java可执行文件jar,war)所处的系统目录名或非打包Java程序所处的目录  *@param cls为Clas
  • this.getClass().getResourceAsStream("/icons/logo.gif");其中icons文件夹处于jar包的根路径下。
  • 读取jar包中资源文件

    千次阅读 2018-09-26 19:00:24
    1.jar包中资源文件 在日常项目中,经常会将一些资源文件或者配置文件打入最终的jar包中。我们可以查看jar包中是否包含这个文件,但是无法看到jar包中这个文件的具体内容。这个时候怎么办呢?下面教大家一种比较...
  • public static void getJarResourceFile... //获取容器资源解析器 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); try { //获取所有匹配的文件 Resource[] resources = resol..
  • 动态加载jar包中资源文件小结加载jar包在jar包中加载资源文件 加载jar包 由于项目需求需要动态加载jar包,加载jar包不详细说明了,网上文档很多。我使用的是继承URLClassLoader自定义类加载器,通过jar包的URL构建...
  • // 生成资源URL://jar:file:/D:\workspace\project\test.jar!/plugin.xml URL fileURL = new URL("jar:file:/"+dirPath+"!/plugin.xml"); // 通过java.url.openStream()返回这个url的字节流。 InputStream input...
  • 在linux环境下,java生成的jar包,在运行jar包程序时怎么获取jar包中资源呢?
  • 读取JAR包中文件

    2021-08-09 09:21:20
    读取JAR包中文件 读取JAR包中文件方法,有三种。 通过类加载器获取 InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("test.xml"); 使用ClassPathResource获取 ClassPath...
  • java从jar包中读取资源文件

    万次阅读 多人点赞 2019-03-25 22:04:31
    一个JAVA项目需要在应用启动时读取一个文件,在这遇到了一个坑,就是在Idea 中,应用启动时可以正常读取这个文件,但应用打成jar包后直接运行就读取不到。 要读取的文件位于/src/main/resources目录下,其相对路径为...
  • 需求说明: 项目开发过程中,需要将公用资源打包成jar包,后面的app...1 通过AssetManager类读取jar包中资源文件 AssetManager类提供了读取文件,读取xml文件的接口 注:限制条件是 读取的文件必须放到Assets...
  • JAVA从jar包中读取资源文件   我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等)。在单独运行的时候这些简单的处理当然不会有问题。但是,如果我们把代码打成一个jar包以后,即使将资源文件一并...
  • getClass().getResource(...)  从类文件的所在目录开始查找...如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了。看看下面的代码: Java代码 //源代码1:  package edu.hxrai
  • 此种方法可在编辑器中运行读取资源文件,打包成jar包后发布也可以读取到项目中文件 将资源文件如xxx.js放到项目的main/resources文件夹中 this.getClass().getClassLoader().getResourceAsStream("xxx.js")
  • 主要介绍了解决SpringBoot jar包中文件读取问题实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Java 应用读取 jar 包中文件

    千次阅读 2019-04-12 18:01:32
    文章目录1、jar 包中文件资源2、使用 ClassLoader 来加载资源3、使用 Spring Resource 工具 1、jar 包中文件资源 jar 包是一个单独的文件而非文件夹,绝对不可能通过 “file:/e:/…/resource /res.txt” ...
  • Java中读取jar包中文件

    万次阅读 2017-12-19 16:00:52
    Java读取jar包中文件
  • SpringBoot读取jar包中资源文件

    千次阅读 2020-10-16 13:44:20
    java -jar启动读取jar包内部资源文件 /** * 读取jar包中classpath下面的文件 * * @param path 文件名 * @return */ public static String readJarFile(String path) { String s = null; try { ClassPath...
  • jar包中获取静态资源文件

    千次阅读 2018-11-29 16:50:12
    在本地编辑器上运行/resources/static/images/下的图片通过路径来获取 File images = new File(path.getAbsolutePath(), "static/images/logo.jpg"); 但是项目打包发布上服务器后,访问就报路径为空。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 28,946
精华内容 11,578
关键字:

获取jar包中的资源文件