Java项目读取配置文件时,找不到指定的文件???

java读取外部配置文件_java读取jar外部的配置文件 一、为什么将配置文件放在java project外?在java应用中经常会用到配置文件,配置文件中定义了程序运行所需要的一些配置信息,而配置文件既以放在java project内部(在给java project打jar包时将配置文件打在jar包内部),也可以放在java project外部。在生产环境中比较可取的是:配置文件放在java project外部。这是因为:当一个java程序运行在生产环... 阅读详情

唉,读取个文件,也就是在项目里面去获得配置文件的目录,然后,变成文件,有事没事,总是出个 FileNotFoundException 系统找不到指定的文件,气死人啦。

还有就是:System.getProperty("user.dir"),都说获得的是“工作目录”,有老铁们在意这个,工作目录怎么理解吗?我这做了个简单的测试。

但是,你把这个配置文件放在项目的根目录下面,也就是 说你的项目文件夹下面直接放一个配置文件,这个时候,就可以,啥前缀不加的,就可以读取到,这个配置文件啦。

但是,这么放置配置文件,好像有点不合适。

那么,这个路径究竟该如何写,才不会报错呢?

1,在 java project 中的配置文件读取,项目打包是jar类型的。

System.getProperty("user.dir");

解释:

默认定位到的当前用户目录("user.dir")(即工程根目录)

JVM就可以据"user.dir" + "你自己设置的目录" 得到完整的路径(即绝对路径)

这有个前提,你的工程不是web项目,不然,这个返回值就不是项目的根目录啦,是tomcat的bin目录。

2,在 java web project 中的配置文件读取

ServletActionContext.getServletContext().xxx

这地方的 ServletActionContext 可不是让你,直接拿来使用的,得分情况而定。

System.out.println("getProperty(\"user.dir\") " + System.getProperty("user.dir"));

System.out.println("getServletContext");

System.out.println("getRealPath " + request.getSession().getServletContext().getRealPath("/"));

System.out.println("getContextPath " + request.getSession().getServletContext().getContextPath());

System.out.println("getResourcePaths " + request.getSession().getServletContext().getResourcePaths("/"));

System.out.println("getResourcePaths " + request.getSession().getServletContext().getResourceAsStream("/WEB-INF/classes/error.xml"));

return mav;

想知道这个运行的结果吗?

 

getRealPath:

直接干到了打成war包target下的项目名称我这叫springMVC。

getContextPath:

这个就是获得当前URL的地址,我访问的这个链接全称是:http://localhost:0000/lxk/student

看运行结果,就是你这个 web app 的名称啦,因为后面的student算是子功能吧。

getResourcePaths:

获得的是打包之后target目录下的项目名称下的所有的目录,具体看图。

 

 

一般,老铁们搜索文章,都搜索到的是

System.getProperty("user.dir")

获得的是工作目录,这个搜索结果千篇一律。简直可怕。因为,这些老铁们从来没测试过。

什么叫工作目录。。。

可以看到,我这个在,Java web项目里面的允许结果,竟然是tomcat的bin 目录。这个懂的自然懂,不懂的,还是渣渣的迷糊。

在非Java web 的项目里面,这个 System.getProperty("user.dir") 的运行结果,如下。

欢迎工作一到五年的Java工程师朋友们加入Java技术交流:585550789

Java项目读取maven项目的resources目录下的资源配置文件 文件格式 该文件在resources目录下,是项目所需的配置项 格式为:键名=值,当然这里=只是为了提高可读性,替换成别的符号也可以! 读取的代码 对文件的处理方式是将该文件的配置键名和值读取出来放入map集合中,然后通过map.get(key)获取值 import org.apache.commons.io.FileUtils; import org.apache.commons.lang.S... 阅读详情

相关推荐

java读写properties文件,解决系统找不到指定路径,解决写入后读取正常,但文件数据未更新问题

我的邮箱:qmys116505@qq.com 有需要的,给我发邮件,我把资料回发给你    部分代码如下: /**   * 得到文件路径   */  public String getfilepath() {   return filepath;  }  /**   * 根据key取得键值   */  public String getValue(String key)

ttha的专栏 3237

解决maven项目中无法读取java目录下xml配置文件的问题

通过mybatis(mybatis plus)进行底层数据交互时,经常出现一个我们会遇到的问题,就是无法读取到dao层对应的xml文件,出现数据传递无响应等等。如下是解决办法:……

qq_30068165的博客 1435

hibernate 系统找不到指定的文件 问题

hibernate 运行的时候报错 java.io.FileNotFoundException: database.properties (系统找不到指定的文件。) //我的项目结构 public class HibernateSessionFactory {     private static SessionFactory sessionFactory;

u011100157的专栏 1491

java错误无法读取配置文件_解决Java Web项目无法读取配置文件问题

错误描述报错信息如下图所示,Web应用后台在读取配置文件的时候,系统找不到指定的路径。这是Java Web项目的目录结构:这是报错部分的代码:static {try {Properties prop = new Properties();//读取配置文件InputStream is = new InputStream("src/main/resources/db.properties");//加载...

weixin_28700411的博客 3190

跟着团子学SAP:SAP用户状态管理详解(含权限分配等) OK02

SAP用户状态详细配置逻辑及解析

Lucas1211的博客 3万+

告别米级误差:手把手教你用Nordic nRF52840实现厘米级蓝牙测距(Channel Sounding实战)

本文详细介绍了如何利用Nordic nRF52840开发板和蓝牙信道探测(Channel Sounding)技术实现厘米级高精度测距。通过硬件配置、软件优化和实战案例,帮助开发者快速掌握低功耗蓝牙测距技术,适用于工业自动化、智能仓储等场景。

weixin_42741930的博客 479

idea web项目中java程序的配置文件放在resources目录下,但是读取不到配置文件

Web项目中Java程序的配置文件放在Resources目录下但是读取不到配置文件

weixin_47304332的博客 2691

【深度学习】通俗易懂讲解循环神经网络LSTM

目录 1、循环神经网络(Recurrent Neural Networks) 2、长依赖存在的问题 3、LSTM 网络 4、LSTMs的核心思想 5、一步一步理解LSTM 6、LSTM的变种 7、总结 1、循环神经网络(Recurrent Neural Networks) 人对一个问题的思考不会完全从头开始。比如你在阅读本片文章的时,你会根据之前理解过的信息来理解下面看到的文字。...

Nieson2012的专栏 2733

【java】getResourceAsStream(“.properties“)配置文件无法读入问题

程序报出了无法初始化以及空指针异常,经过排查,发现inputstream是空的,说明配置文件并没有被读进来。即使我们使用全路径,依然是上述的错误。换一种读入配置文件的方式。

qq_44886213的博客 1731

数字孪生驱动的城市地下管网智能运维与应急处置决策支持系统

上海市城市数字化中心的数据实践显示,通过关联分析管网材质与故障率的关系,将铸铁管更换周期从15年优化至8年(李敏,2021)。环境效益方面,上海市通过优化管网运行参数,年减少碳排放1.8万吨,相当于种植36万棵乔木。数字孪生与物理设备的双向交互采用OPC UA协议实现,某次天津管网渗漏事件中,系统通过实时数据反馈,指导现场人员调整注浆方案,将修复时间从48小时压缩至16小时。虚拟指挥沙盘支持多视角协同,深圳水务系统的实践表明,通过AR可视化技术,跨部门会议效率提升60%,方案决策时间缩短40%。

2501_92431686的博客 1426

使用 Mid360 从零开始搭建实物机器人入门级导航系统 —— 基于 Fast_Lio 和 Move_Base

本文详细介绍了如何使用Mid360机器人从零开始搭建一个基于Fast_Lio和Move_Base的入门级导航系统。通过配置 ROS2、集成激光雷达、IMU、Fast_Lio、Move_Base 等模块,我们成功构建了一个能够实现自动导航的机器人系统。在实际开发中,随着需求的变化,你可以不断调整参数、优化路径规划算法、增加新的传感器等,逐步提升机器人的智能与功能。

小蜗牛的珍贵百宝箱 3570

关于@Value读不到配置文件内容的问题

关于@Value读不到配置文件内容的问题

Jupite_ch的博客 3861

LTC3783 LED驱动控制器设计与效率优化详解

开关电源控制器是现代LED照明的核心器件,通过电流模式控制实现高效能量转换。其核心原理是通过采样电阻检测负载电流,配合误差放大器形成闭环调节,在汽车电子、显示背光等场景中确保±3%的电流精度。LTC3783作为典型代表,集成升压/降压-升压多拓扑支持,配合PWM调光技术可实现3000:1的无色偏调光范围。在工程实践中,需重点考量功率电感选型、MOSFET开关损耗与热管理设计,例如在38W功率方案中采用10μH/5A电感和4.5mΩ MOSFET可达成95%效率。该方案特别适用于需要应对9-36V宽输入电压波

weixin_36231030的博客 401

java找不到配置文件_Java项目读取配置文件时,找不到指定的文件???

唉,读取个文件,也就是在项目里面去获得配置文件的目录,然后,变成文件,有事没事,总是出个 FileNotFoundException 系统找不到指定的文件,气死人啦。还有就是:System.getProperty("user.dir"),都说获得的是“工作目录”,有老铁们在意这个,工作目录怎么理解吗?我这做了个简单的测试。但是,你把这个配置文件放在项目的根目录下面,也就是 说你的项目文件夹下面直接...

weixin_36360543的博客 1236

Acute逻辑分析仪TL4134E实战:从触发电平到协议解析的完整避坑指南

本文是一份针对Acute逻辑分析仪TL4134E的实战避坑指南。文章深入解析了触发电平分组、采样率与存储深度权衡、高级触发等核心概念,并提供了混合电压系统测量、eMMC调试内存优化、SPI/I2C/UART协议解析排错等具体配置技巧,帮助硬件工程师和嵌入式开发者高效捕获与分析数字信号,快速定位通信问题。

weixin_29207149的博客 407

康耐视visionpro-CogBlobTool工具详细说明

康耐视visionpro-CogBlobTool工具详细说明

视觉人机器视觉的博客 1730

Java配置文件找不到指定_Java项目读取配置文件时,找不到指定的文件???

唉,读取个文件,也就是在项目里面去获得配置文件的目录,然后,变成文件,有事没事,总是出个 FileNotFoundException 系统找不到指定的文件,气死人啦。还有就是:System.getProperty("user.dir"),都说获得的是“工作目录”,有老铁们在意这个,工作目录怎么理解吗?我这做了个简单的测试。但是,你把这个配置文件放在项目的根目录下面,也就是 说你的项目文件夹下面直接...

weixin_29150151的博客 309

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android 读取指定路径文件_Java项目读取配置文件时,找不到指定的文件???

唉,读取个文件,也就是在项目里面去获得配置文件的目录,然后,变成文件,有事没事,总是出个 FileNotFoundException 系统找不到指定的文件,气死人啦。还有就是:System.getProperty("user.dir"),都说获得的是“工作目录”,有老铁们在意这个,工作目录怎么理解吗?我这做了个简单的测试。但是,你把这个配置文件放在项目的根目录下面,也就是 说你的项目文件夹下面直接...

weixin_39677538的博客 390

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

android相对路径找不到文件_Java项目读取配置文件时,找不到指定的文件???

唉,读取个文件,也就是在项目里面去获得配置文件的目录,然后,变成文件,有事没事,总是出个 FileNotFoundException 系统找不到指定的文件,气死人啦。还有就是:System.getProperty("user.dir"),都说获得的是“工作目录”,有老铁们在意这个,工作目录怎么理解吗?我这做了个简单的测试。但是,你把这个配置文件放在项目的根目录下面,也就是 说你的项目文件夹下面直接...

weixin_29417899的博客 778

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

.rpt文件内容读取java_Java项目读取配置文件时,找不到指定的文件???

唉,读取个文件,也就是在项目里面去获得配置文件的目录,然后,变成文件,有事没事,总是出个 FileNotFoundException 系统找不到指定的文件,气死人啦。还有就是:System.getProperty("user.dir"),都说获得的是“工作目录”,有老铁们在意这个,工作目录怎么理解吗?我这做了个简单的测试。但是,你把这个配置文件放在项目的根目录下面,也就是 说你的项目文件夹下面直接...

weixin_39760065的博客 229

Java中读取properties配置文件的八种方式总结

一、前言 在做Java项目开发过程中,涉及到一些数据库服务连接配置、缓存服务器连接配置等,通常情况下我们会将这些不太变动的配置信息存储在以 .properties 结尾的配置文件中。当对应的服务器地址或者账号密码信息有所变动时,我们只需要修改一下配置文件中的信息即可。同时为了让Java程序可以读取 .properties配置文件中的值,Java的JDK中提供了java.util.Properties类可以实现读取配置文件。 二、Properties类 Properties 类位于 java.util.Pro

Thinkingcao的专栏 5万+

Springboot读取外部配置文件,项目部署时配置读取不到问题

需求: 最近项目部署,但是每个地方都有个别地方配置的差异,我们每次打包后再进行修改极度不方便,这里将有关的配置都抽取出来,放在jar包外进行配置,这样以后更新时只需要将jar包更换然后重启即可,配置读取外部的固定配置文件。 SpringBoot 配置 springboot默认配置的加载位置和优先级顺序springboot启动时会扫描以下位置的application.properties和application.yml文件作为默认的配置文件。 file: ./config/ file: ./ class

小刘爱搬砖 1万+

java 加载db.properties配置文件时,找不到路径

关于java加载数据库配置文件db.properties中的一些问题 在日常项目开发中,为方便项目后期维护,在建立连接池,连接数据库时,一般都不会将数据库的基本配置driverClassName,url,username,password等信息直接写进DbUtils类中(建立数据库连接的一个工具类),而是通过xxx.properties配置文件的形式进行配置,然后由DbUtils类加载并读取该配...

weixin_38133660的博客 3115

java读取项目外的配置文件

java读取项目外的配置文件 我将配置文件filepath.properties直接放到了C盘下 配置文件内容如下: # 注释用#号 systemDefaultDownloadPath=C:\\Users\\Administrator\\Downloads # 有多个值要另起一行,不要加,;一些符号,等号两边不要加空格 linuxFilePath=java/Downloads 然后java读取配...

Amily_an的博客 2452
上一篇: Java 9正式发布,新特性解读
下一篇: 服!直聘:AI 薪酬飙升 !Java 狂降?80% 程序员已确认!
java1856905
博客等级 码龄8年 100粉丝 249原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值