java class 绝对路径_java中类路径下的绝对路径(通用路径)

类路径下的绝对路径(通用路径)

Class.forName("Myclass");像这种路径的缺点是:

移植性差,在IDEA中默认的当前路径是project的根。如果不是IDEA,换到了其它位置,可能当前路径就不是project的根了,路径就会无效。

一种比较通用的路径

即使代码换位置了,这样编写仍然是通用的。(适用于任何操作系统)

注意:使用以下通用方式的前提是:这个文件必须在类路径下。(放在src下的都是类路径下,src是类的根路径。)

代码示例

public class Demo{

public static void main(String[] args){

/*

Thread.currentThread():当前线程对象。

getContextClassLoader():是线程对象的方法,

可以获取到当前线程的类加载器对象。

getResource():(获取资源)这是类加载器对象的方法,

当前线程的类加载器默认从类的根路径下加载资源。

*/

String path = Thread.currentThread()

.getContextClassLoader()

.getResource("classinfo.properties")

.getPath();

System.out.println(path);

}

}

输出:

93ed2dc9600e72f264cc3bd6c68bcd03.png

这里返回的是class文件所在的目录。所以不能获取java文件的路径,只能把.java改为.class:

getResource("Demo.class")

输出:

83e7493584ea0dccc566769e33e53328.png

以流的形式返回路径

代码示例

8c193a2ce394865050dec2b6e94292a5.png

import java.io.InputStream;

import java.util.Properties;

public class Demo{

public static void main(String[] args) throws Exception{

InputStream path = Thread.currentThread()

.getContextClassLoader()

.getResourceAsStream("classinfo.properties");

Properties pro = new Properties();

pro.load(path);

path.close();

String className = pro.getProperty("className");

System.out.println(className);

}

}

输出:

dfb51860827889002d1b4b2f596cd3a2.png

资源绑定器

概述

1、使用资源绑定器便于获取属性配置文件中的内容。

2、只能绑定xxx.properties文件,但是路径后面的扩展名不能写。(.properties不能写)

3、使用的时候,属性配置文件必须放到类路径下。

代码示例

a75caf7e34d86c744faed19e154a1e09.png

import java.util.ResourceBundle;

public class Demo{

public static void main(String[] args) throws Exception{

ResourceBundle bundle = ResourceBundle.getBundle("classinfo");

String date = bundle.getString("date");

System.out.println(date);

}

}

输出:

4e367cea2bcfd3739a9819b51992d6c4.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值