Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >类加载器获取文件路径相关

类加载器获取文件路径相关

作者头像
HCG_Sky
发布于 2022-04-11 09:25:55
发布于 2022-04-11 09:25:55
1.8K00
代码可运行
举报
文章被收录于专栏:HCG_Sky's BlogHCG_Sky's Blog
运行总次数:0
代码可运行

类加载器获取配置文件路径的小细节!

前言

 简单的记录一下我对类加载器使用过程中遇到的问题,以及解决方法

 我们利用类加载器获取配置文件路径是这样的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//获取src路径下的文件方式-->ClassLoader 类加载器
ClassLoader cl = JDBCUtils.class.getClassLoader();
URL resource = cl.getResource("jdbc.properties");
String path = resource.getPath();
System.out.println(path);

 需要注意的是,这段代码对应的文件路径如下

 这个时候的配置文件是在src下的

 这里我们把它移动一下位置,代码不变

 配置文件被我们移动到com.hcg.jdbc包下后,代码不变,再运行会报错 Could not initialize class xxx

 接着我们稍微加点东西

 可以看到,又正常了,不会报错了

总结

以上试验说明了类加载器的getResource()方法是从src目录下查找的,如果你要找的文件在其它的二级目录,需要带上相应的路径才能查找成功

本篇文章采用 署名 4.0 国际 (CC BY 4.0) 许可协议进行许可。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java类加载器详解(下)
这个类中定义了一个加密和解密的算法,很简单的,就是将字节和oxff异或一下即可,而且这个算法是加密和解密的都可以用,很是神奇呀!
Java团长
2018/07/23
6370
Java类加载器详解(下)
深入理解Java类加载器(ClassLoader)
本篇博文主要是探讨类加载器,同时在本篇中列举的源码都基于Java8版本,不同的版本可能有些许差异。主要内容如下
用户1257215
2018/10/26
1.7K0
完整的JDBCUtils和登录案例,以及解决SQL注入问题。
一、JDBCUtils类 注释非常详细 /** * JDBC工具类 */ public class JDBCUtils { // 为什么是静态的呢,因为只有静态的变量才能被静态代码块所访问,被静态方法所访问 private static String url; private static String user; private static String password; private static String driver; /** * 文件的读取,只需要读取一次即可拿到这些值。 使用静
阿年、嗯啊
2021/04/27
7300
完整的JDBCUtils和登录案例,以及解决SQL注入问题。
Java有根儿:Class文件以及类加载器
class文件是JVM的输入,内容是已编译的代码,它是一种跨硬件和跨操作系统的二进制格式。class文件可以准确定义类和接口,以及他们内部的针对不同平台分配的内存字节表示。下面我们看一下一个class文件的16进制内容。
文彬
2022/05/30
4800
Java有根儿:Class文件以及类加载器
JavaWeb21-基础加强(注解;代理;类加载器;泛型反射
基础加强一.注解 1. 注解介绍 注解概述 Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。格式:注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据(用来描述数据的数据)的访问。另外,你可以在编译时选择代码里的注解是否只存在于源代码级,或者它也能在class文件、或者运行时
Java帮帮
2018/03/19
8440
JavaWeb21-基础加强(注解;代理;类加载器;泛型反射
Java类加载器(用户自定义类加载器实现)
java类加载器主要分为如下几种: jvm提供的类加载器 根类加载器:底层实现,主要加载java核心类库(如:java.lang.*) 扩展类加载器:使用java代码实现,主要加载如:jre/lib/ext/ 下的扩展类库。(父类加载器为根类加载器) 系统类加载器(应用类加载器):使用java代码实现,加载classpath目录下的类。(父类加载器为扩展类加载器) 用户自定义类加载器:去继承ClassLoader类实现自定义类加载器。 类加载器负责将java字节码文件加载到虚拟机内存中也就是类的生命周期的装
Java帮帮
2018/03/15
8460
Java类加载器(用户自定义类加载器实现)
java mysql redis数据库操作
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
多凡
2019/11/01
1.9K0
Java 优化:读取配置文件 "万能方式" 跨平台,动态获取文件的绝对路径
每个人的生活同样也是一个世界,即使最平凡的人,也得要为他那个世界的存在而战斗。从这个意义
RainbowSea
2023/02/22
8210
深入探讨 Java 类加载器
看到一篇写得非常好的加载器文章,转过来与大家分享一下(https://www.ibm.com/developerworks/cn/java/j-lo-classloader/#download) ---- 类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java Applet 需要从远程下载 Java 类文件到浏览器中
老白
2018/03/19
7930
深入探讨 Java 类加载器
记一次类加载器的简单应用
jvm和java语言是两种产品,java代码编译后生成字节码bytecode(.class文件),jvm解释字节码转换为机器码并真正执行,字节码和虚拟机之间的桥梁就是java开发中常见的类加载器,实现从外部来加载某个类的字节码并传递给虚拟机。
tiaotiaoba
2022/01/18
4150
记一次类加载器的简单应用
Flink的类加载器
在运行 Flink 应用程序时,JVM 会随着时间的推移加载各种类。 这些类可以根据它们的来源分为三组:
从大数据到人工智能
2022/01/18
2.4K0
深入探索“线程上下文类加载器”
Q: 越基础的类由越上层的加载器进行加载,如果基础类又要调用回用户的代码,那该怎么办? A: 解决方案:使用“线程上下文类加载器”
tomas家的小拨浪鼓
2019/08/06
2K1
深入探索“线程上下文类加载器”
Java工具集-JDBCUtils
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
cwl_java
2019/12/10
1K0
Java类加载器的学习笔记
学习资料来源:https://www.bilibili.com/video/av30023103/
逆回十六夜
2019/09/12
4230
自定义类加载器加载过Class文件被替换后如何生效
这篇文章是在上一篇文章的基础上进行补充。写这篇文章的原因是因为在今天的面试中,聊到自己小程序后台在线编辑代码,其中涉及到防止非必要重启,我使用自定义类加载去加载某些类,然后面试官问到这样一个问题:如果你第一版的class文件放服务器上去被加载之后,你又修改了源代码重新编辑替换,此时怎么解决?
每天学Java
2020/06/02
1.8K0
Java中的类加载器
Class loaders属于JRE的一部分,负责在运行时将Java类动态加载到JVM。得益于class loaders,JVM在无需知晓底层文件或文件系统时就可以运行Java程序。
码代码的陈同学
2018/08/20
8400
踩坑集锦之你真的明白Java类路径的含义吗?
在Dubbo源码篇02—从泛化调用探究Wrapper机制的原理一文中,我们写过compileJava2Class这个方法,来编译,加载,实例化我们的代理对象的java文件:
大忽悠爱学习
2023/05/23
1.4K0
踩坑集锦之你真的明白Java类路径的含义吗?
Java虚拟机--线程上下文类加载器
线程上下文类加载器 通过名字可知,线程上下文类加载,就是当前线程所拥有的类加载器,可通过Thread.currentThread()获取当前线程。 线程上下文类加载器(Thread Context ClassLoader)可以通过java.lang.Thread类的setContextClassLoader()方法设置,创建线程时候未指定的话,则默认从父线程中继承。 那父线程中也没指定呢?那么会默认为应用程序的类加载器。例如:main方法的线程上下文类加载器就是sun.misc.Launcher$AppCl
贾博岩
2018/06/13
1.5K0
java 自定义的类加载器_Java如何自定义类加载器[通俗易懂]
我们可以编写自己的用于特殊目的的类加载器,这使得我们可以在向虚拟机传递字节码之前执行定制的检查。
全栈程序员站长
2022/10/04
1.5K0
Java魔法堂:类加载器入了个门
一、前言                               《Java魔法堂:类加载机制入了个门》中提及整个类加载流程中只有加载阶段作为码农的我们可以入手干预,其余均由JVM处理。本文将记录
^_^肥仔John
2018/01/18
8070
Java魔法堂:类加载器入了个门
相关推荐
Java类加载器详解(下)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验