Java工程读取resources中资源文件路径问题

正常在Java工程中读取某路径下的文件时,可以采用绝对路径和相对路径,绝对路径没什么好说的,相对路径,即相对于当前类的路径。在本地工程和服务器中读取文件的方式有所不同,以下图配置文件为例。

本地读取资源文件

java类中需要读取properties中的配置文件,可以采用文件(File)方式进行读取:

1 File file = new File("src/main/resources/properties/basecom.properties");
2 InputStream in = new FileInputStream(file);

当在eclipse中运行(不部署到服务器上),可以读取到文件。

服务器(Tomcat)读取资源文件

当工程部署到Tomcat中时,按照上边方式,则会出现找不到该文件路径的异常。经搜索资料知道,Java工程打包部署到Tomcat中时,properties的路径变到顶层(classes下):

并且,此时读取文件需要采用流(stream)的方式读取,如下:

1 InputStream in = this.getClass().getResourceAsStream("/properties/basecom.properties");

其中properties前的斜杠,相对于调用类,共同的顶层路径。

参考:

Resource from src/main/resources not found after building with maven

[Java] 在 jar 文件中读取 resources 目录下的文件

时间: 2024-08-11 09:57:11

Java工程读取resources中资源文件路径问题的相关文章

java程序读取资源文件时路径如何指定

java程序,读取资源操作有两种方式. 一是直接通过File进行的.例如FileReader.BufferedReader等.文件目录就是相对于Project了.如我新建一个MyProject,那么,我在MyProject下有一个icons文件夹,如果想读取icons里面的东西,路径是诸如"icons/***.gif"的相对路径就可以了. 二是通过getClass().getResource("")得到.第二种方法必须保证文件是在classpath包括的路径下.而一

Eclipse下的java工程目录问题和路径问题理解

1.Eclipse下的java工程都有哪些文件夹? 答:new java project时,会默认创建SRC源代码目录,并默认创建一个bin目录作为输出目录,输出目录是指生成的class文件和配置文件地址. 所以Eclipse创建的java工程,默认就两个文件夹,src和bin. 2.当点击Eclipse运行时候java jdk会默认执行编译,并将编译后的java文件,生成class文件放到项目目录下的bin文件夹里,以.class命名结尾. 注:即使某个类有bug错误,不能编译通过.但只要点击

java文件读取的路径问题解惑和最佳实践,让你远离FileNotFoundException

使用java读取jar或war下的配置文件,是开发者经常需要处理的事情,大家是不是经常遇到FileNotFoundException呢?java读取文件的方式也有很多,比如new File(),Class.getResource(),ClassLoader.getResource(),这些方式的差别是什么呢?开源框架struts2的ClassLoaderUtils和Spring提供ClassPathResource,都提供了对资源读取进行封装的工具类,你是否了解他们的实现原理呢?本文结合网上的一

Java工程得到文件路径

System.out.println(System.getProperty("user.dir"));//得到工程所在磁盘路径 String mailFilePath = new File("WebRoot").getAbsolutePath()+"\\file\\maiList.txt";//得到webRoot下file文件夹下maiList.txt所在磁盘路径 Java工程得到文件路径,布布扣,bubuko.com

Unity使用Resources读取Resources路径下的二进制文件(Binary Data)必须使用 .bytes扩展名

将某二进制文件放在Resources目录下,希望用Resources.Load<TextAsset>的方式读取,发现TextAsset是null 查阅Unity文档得知,使用Resources.Load读二进制文件,则文件扩展名必须为bytes 另外注意,Resources.Load的路径不要包含扩展名 Please notice that files with the .txt and .bytes extension will be treated as text and binary f

解决Java工程路径中含有中文的情况

问题: 当Java工程路径中含有中文时,得不到正确的路径 *** 解决: 这其实是编码转换的问题.当我们使用ClassLoader的getResource方法获取路径时,获取到的路径被URLEncoder.encode(path,"utf-8")编码了,当路径中存在中文和空格时,他会对这些字符进行转换,这样,得到的往往不是我们想要的真实路径,所以我们可以调用URLDecoder.decode()方法进行解码,以便得到原始的中文及空格路径. Java代码 : String package

Java或者JAR包获取读取资源文件的路径的问题总结

这里分为具体两种: 第一种:资源文件为一般后缀文件 第二种:资源文件为图片文件 [NO1]第一种 使用这行代码可以获取class类的根目录的路径 String path =Thread.currentThread().getContextClassLoader().getResource("").getPath(); 例子:我用的开发软件MyEclipse 6.5 假设项目文件夹如下: files---bin--core(生成class包) |               |     

Delphi编程中资源文件的应用

Delphi编程中资源文件的应用/转自 http://chamlly.spaces.live.com/blog/cns!548f73d8734d3acb!236.entry一.引子: 现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便程序需要的时候调用.资源是程序的一部分,程序要正常运行就离不了资源文件.但是它是不可执行代码. 为了更好地管理资源,Delphi中提供了一种.RES类型的

如何用shell脚本编译java工程

编译java工程一般直接用IDE或者用Ant.Maven之类的工具,很少有人用纯shell来编译java工程.正好遇到这样一个应该,用这篇博文做一下记录. 案例:本人用eclipse写了一个java project,然后编译打成jar包. 这个可以采用eclipse自带的Export就可以导出jar了.但是为了软件自动化等巴拉巴拉的原因,采用存shell脚本编译. 如图所示,java project的名称为iec104,下面src是源文件目录,bin是所引用的jar包目录,现在要进行编译,并且打