首页 > 其他分享 >不能直接从jar 读取文件

不能直接从jar 读取文件

时间:2023-06-06 13:23:20浏览次数:52  
标签:xml 文件 java 读取 jar file test import

What is a file?

https://www.computerhope.com/jargon/f/file.htm

文件的权限 delete,execute,read,write,readlink

abc.jar 是一个file

abc.jar!\test.xml 不是一个file,因为在电脑上不能用ls或dir将它显示出来。它是文件的内容的一部分,是二进制流。

测试

项目一

z-bean.                                                                                                                   
├─src                                                                                                               
│  ├─main                                                                                                          
│  │  ├─java                                                                                                      
│  │  └─resources                                                                                                 
│  │          test.xml       

项目二(依赖一)

z-test.                                                                           
│                                                                                                                    
├─src                                                                                                               
│  ├─main                                                                                                          
│  │  ├─java                                                                                                      
│  │  │      Main.java 

 

测试方法

import java.io.File;
import java.io.IOException;
import java.net.URL;

public class Main {
    
    public static void main(String[] args) throws IOException {
        URL resource = Main.class.getClassLoader().getResource("test.xml");
        File file = new File(resource.getFile());
        System.out.println(file.exists());
    }

}

case1: 在eclipse中,两个项目都打开(文件夹源码形式依赖)

true

case2:在eclipse中,将z-bean 项目关闭(jar包形式依赖)

false

 

类似的还有:

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;

import com.ibatis.common.resources.Resources;

public class Main {
    
    public static void main(String[] args) throws IOException {
        //此处如果用AsFile 则不存在,如果用stream或者reader则可以
//        InputStream resourceAsStream = Resources.getResourceAsStream("test.xml");
//        Reader resourceAsReader = Resources.getResourceAsReader("test.xml");
        File resourceAsFile = Resources.getResourceAsFile("test.xml");
        System.out.println(resourceAsFile.exists());
    }

}

 

小结

如果不能用计算机的命令展示(dir 或ls)的文件,都不存在。

jar包里的资源文件需要用流形式获取

标签:xml,文件,java,读取,jar,file,test,import
From: https://www.cnblogs.com/zno2/p/6553437.html

相关文章

  • 如何从抓包文件中分析慢请求
    请求慢的原因很多,当出现前端反应接口慢时,而通过后端日志查看请求处理时间并不慢时,往往会手足无措,当面对网络问题出现手足无措时,这就是在提醒你该抓包分析了,那么一般如何根据抓包文件去分析慢请求呢,今天我们就来看看。抓包文件分析准备用我在测试环境抓到的包去进行分析,首先执行......
  • maven-jar-plugin 定制包含哪些内容,不包含哪些
    http://maven.apache.org/plugins/maven-jar-plugin/usage.html控制打包内容<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-pl......
  • org.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)
    DescriptionResourcePathLocationTypeorg.codehaus.plexus.archiver.jar.Manifest.write(java.io.PrintWriter)pom.xml/gs-rest-serviceline1MavenConfigurationProblem在学习springboot实例时,发现了这个Maven配置错误,但是不影响springboot运行。问题......
  • 26) minify-maven-plugin 合并压缩 js css文件
     http://samaxes.github.io/minify-maven-plugin/minify-mojo.html <build><plugins><plugin><groupId>com.samaxes.maven</groupId><artifactId>minify-maven-plugin</artifactId><version&g......
  • 27) yuicompressor-maven-plugin 合并压缩 js css文件
    http://davidb.github.io/yuicompressor-maven-plugin/compress-mojo.html<plugin><groupId>net.alchim31.maven</groupId><artifactId>yuicompressor-maven-plugin</artifactId><version>1.5.1</......
  • VsCode配置Wdk7600开发环境 以及 "自动编译" 和 sources文件简单介绍..
    目录VsCode配置Wdk7600开发环境以及"自动编译"和sources文件简单介绍..一丶简介1.2软件安装1.3开发环境配置步骤1.4集成终端编译1.4.1集成任务1.4.2设置为全局任务.二丶Sources文件编程2.1INCLUDES字段2.2i386_SOURCES32位驱动使用内联汇编2.3AMD64_SOURCES使用......
  • “AI Earth”人工智能创新挑战赛:助力精准气象和海洋预测Baseline[1]、NetCDF4使用教学
    1.“AIEarth”人工智能创新挑战赛:助力精准气象和海洋预测Baseline[1]、NetCDF4使用教学、Xarray使用教学,针对气象领域.nc文件读取处理比赛官网:https://tianchi.aliyun.com/specials/promotion/aiearth2021?spm=a2c22.12281976.0.0.4d0d19efK2FngK1.1背景描述聚焦全球大气海......
  • CSV文件ASCI编码格式转UTF-8
    1.将CSV文件中的文本内容复制到wps表格中→保存文件为csv文件格式。2.用记事本打开csv文件→另存为→“编码”选项下拉选择“UTF-8”→保持文件类型不变保存。另外,高版本的Microsoftofficeexcel似乎可以直接通过另存的方式实现UTF-8转码,如果有这个软件也可以试试。......
  • 解决Eclipse中.properties文件中文乱码问题
    在.properties文件写注释时,发现中文乱码了,由于之前在idea中有见设置.properties文件的编码类型,便找了找乱码原因在中文操作系统中,Eclipse中的Java类型文件的编码的默认设置是GBK,但是对Properties资源文件的编码的默认设置是ISO-8859-1。所以编辑Java文件中的中文不会出现问题,但编......
  • C# cmd 生成 exe文件
    生成单独的exe文件C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exeProgram.cs生成exe文件的步骤如下:1.使用文本编辑器(如Notepad++或VisualStudioCode)编写C#源代码,并将其保存为.cs文件(例如,`Program.cs`)。2.打开一个命令提示符(在Windows中按下Windows+......