java中 获取classpath路径
一:properties下配置
在resources下定义server.properties
register.jks.path=classpath\:conf/userRegister/migu.jks
xml配置server.properties
<util:properties id="settings" location="classpath:conf/server.properties"/>
在service类里注入:
private ResourceLoader resourceLoader;@Value("#{settings['register.jks.path']}")private String trustKeyStore;//调用:public void add() {ClassPathResource resource = (ClassPathResource) resourceLoader.getResource(trustKeyStore);}
二:在另一项目调用classpath资源文件 / (项目中调用jar包中的资源文件)
在resources下定义server.properties
jks.path=classpath:conf
在xml里配置
<bean id = "tianyiCert" class = "com.util.CertUtil"> <property name="serverCert" value = "${jks.path}/server.jks" /> </bean>
com.util.CertUtil里内容
import org.springframework.core.io.Resource;public class CertUtil {private Resource serverCert;public Resource getServerCert() {return serverCert;}public void setServerCert(Resource serverCert) {this.serverCert = serverCert;}}
调用路径:
@Resource(name = "tianyiCert")protected CertUtil certUtil;protected String serverKey; protected String getServerKey() {if (StringUtils.isEmpty(serverKey)) {try {serverKey = certUtil.getServerCert().getFile().getAbsolutePath();return serverKey;} catch (IOException e) {e.printStackTrace();}}return serverKey;}
这样也可以。
下面是较常用的方式
三:常用的方式
ClassLoader 提供了两个方法用于从装载的类路径中取得资源:
public URL getResource (String name);
public InputStream getResourceAsStream (String name);
这里name是资源的类路径,它是相对与“/”根路径下的位置。getResource得到的是一个URL对象来定位资源,而getResourceAsStream取得该资源输入流的引用保证程序可以从正确的位置抽取数据。
但是真正使用的不是ClassLoader的这两个方法,而是Class的 getResource和getResourceAsStream方法,因为Class对象可以从你的类得到(如YourClass.class或 YourClass.getClass()),而ClassLoader则需要再调用一次YourClass.getClassLoader()方法,不 过根据JDK文档的说法,Class对象的这两个方法其实是“委托”(delegate)给装载它的ClassLoader来做的,所以只需要使用 Class对象的这两个方法就可以了。
因此,直接调用 this.getClass().getResourceAsStream(String name) ;获取流,
静态化方法中则使用ClassLoader.getSystemResourceAsStream (String name) ; 。
下面是一些得到classpath和当前类的绝对路径的一些方法。你可能需要使用其中的一些方法来得到你需要的资源的绝对路径。
1.this.getClass().getResource("")
得到的是当前类class文件的URI目录。不包括自己!
如:file:/D:/workspace/jbpmtest3/bin/com/test/
2.this.getClass().getResource("/")
得到的是当前的classpath的绝对URI路径 。
如:file:/D:/workspace/jbpmtest3/bin/
3.this.getClass() .getClassLoader().getResource("")
得到的也是当前ClassPath的绝对URI路径 。
如:file:/D:/workspace/jbpmtest3/bin/
4.ClassLoader.getSystemResource("")
得到的也是当前ClassPath的绝对URI路径 。
如:file:/D:/workspace/jbpmtest3/bin/
5.Thread.currentThread().getContextClassLoader ().getResource("")
得到的也是当前ClassPath的绝对URI路径 。
如:file:/D:/workspace/jbpmtest3/bin/
6.ServletActionContext.getServletContext().getRealPath(“/”)
Web应用程序 中,得到Web应用程序的根目录的绝对路径。这样,我们只需要提供相对于Web应用程序根目录的路径,就可以构建出定位资源的绝对路径。
如:file:/D:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/WebProject
java中 获取classpath路径相关推荐
- java代码中获取classpath路径
原贴:http://blog.csdn.net/magi1201/article/details/18731581 java web工程中,有时候需要自己手动的去读取classpath下面的配置文件, ...
- java获取classpath_java代码中获取classpath路径
参考:http://blog.csdn.net/magi1201/article/details/18731581 方法一: String path = Test.class.getResource( ...
- java中获取文件路径的几种方式
http://my.oschina.net/jing31/blog/6605 关于绝对路径和相对路径: 绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz e ...
- 如何在Java中获取临时文件路径
这是获取Java中临时文件路径的示例. 例 package com.mkyong.file;import java.io.File; import java.io.IOException;public ...
- java中获取配置文件路径中含有中文,出现乱码的情况解决方案
ClassLoader的getResource方法使用了utf-8对路径信息进行了编码,当路径中存在中文和空格时,他会对这些字符进行转换,这样,得到的往往不是我们想要的真实路径,在此,调用了URLDe ...
- 转载:JAVA中获取项目文件路径
2019独角兽企业重金招聘Python工程师标准>>> web 上运行 1: this.getClass().getClassLoader().getResource(" ...
- java 取classpath_(转)Java获取CLASSPATH路径
ClassLoader提供了两个方法用于从装载的类路径中取得资源: public URL getResource(String name); public InputStream getResourc ...
- 在java中图片路径_java中获取图片路径三中方法
java中获取图片路径的方法 //获取路径三中方法 //+ f.getOriginalFilename(); //String filedir = Thread.currentThread().get ...
- Java中获取资源文件路径
Java路径 Java中使用的路径,分为两种:绝对路径和相对路径.具体而言,又分为四种: 一.URI形式的绝对资源路径 如:file:/D:/java/eclipse32/workspace/jbpm ...
- Java在WEB项目中获取文件路径
2019独角兽企业重金招聘Python工程师标准>>> jsp中获得文件路径 1.根目录所对应的绝对路径:request.getRequestURI(): 2.文件的绝对路径:app ...
最新文章
- 达内——java变量
- MVC Razor模板引擎
- bitcask存储引擎
- javascript内置顶层函数
- ALV中下拉列表列的实现
- 「MacOS」Mac快捷键
- MongoDB应用篇
- IOS15的抽屉效果
- 句子中单词首字母大写转换
- 【Kafka】kafka 创建 topic的时候 Replication factor 参数理解
- 每周荐书:Kotlin、分布式、Keras(评论送书)
- 「三分钟系列01」3分钟看懂快速排序
- Swagger 3.0 官方 starter 诞生,野生的可以扔了!
- memcached安装部署及启动错误排查
- c++修复工具_别再花钱修复旧照片啦!老照片一键修复工具,独创方法支持PS2020...
- 台式计算机硬盘序号,[硬盘序列号的查看方法]台式机查看序列号的方法
- 智慧城管核心应用系统建设
- Android中读取图片EXIF元数据之metadata-extractor的使用
- MATLAB实现 有限长序列的线性卷积和圆周卷积
- Spring boot 2 雷神
热门文章
- c语言一维数组程序题,C语言程序设计 练习题参考答案 第四章 一维数组
- DRL实战 : N-Armed Bandits问题
- Tensorflow 2.0 : FCNN
- 算法:罗马数字转换为整数13. Roman to Integer
- win10今日热点弹窗怎么删除_“今日热点”怎么去掉,每次弹窗很烦!是哪个软件附带的,我想卸载了!谢谢有心人!~~...
- 判断数组中的元素是否连续
- 【机器学习系列】隐马尔科夫模型第二讲:前向算法、后向算法
- 2018_11_25_生活记录
- opengl es坐标变换2
- mysql数据库的使用与理解( 基于ubuntu 14.0.4 LTS 64位)