java中得到classpath和当前类的绝对路径的一些方法(路径中的%20"进行替换空格)

原网址:http://blog.csdn.net/shendl/article/details/1427475

(注意:利用下面方式得到路径,如果路径中有空格字符, 那么会有"%20"进行替换, 所以得到之后再将"%20"替换成空格)

下面是一些得到classpath和当前类的绝对路径的一些方法。你可能需要使用其中的一些方法来得到你需要的资源的绝对路径。

1,FileTest.class.getResource("");

     FileTest.class.getResource("../");//得到上一级

得到的是当前类FileTest.class文件的URI目录。不包括自己!

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/

2,FileTest.class.getResource("/")

得到的是当前的classpath的绝对URI路径。

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

3,Thread.currentThread().getContextClassLoader().getResource("")

得到的也是当前ClassPath的绝对URI路径。

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

4,FileTest.class.getClassLoader().getResource("")

得到的也是当前ClassPath的绝对URI路径。

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

5,ClassLoader.getSystemResource("")

得到的也是当前ClassPath的绝对URI路径。

如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

   

我推荐使用Thread.currentThread().getContextClassLoader().getResource("")来得到当前的classpath的绝对路径的URI表示法。

时间: 2024-09-19 13:49:36

java中得到classpath和当前类的绝对路径的一些方法(路径中的%20"进行替换空格)的相关文章

java中this.对象 表示本类的对象,那this.方法 表示本类的方法吗

问题描述 java中this.对象 表示本类的对象,那this.方法 表示本类的方法吗 java中this.对象 表示本类的对象,那this.方法 表示本类的方法吗 解决方案 你的理解是正确的,可以指向本类方法,还有个SUPER,可以指向父类方法 解决方案二: this表示本类,调用方法是一般对象.方法,即调用某个类的某个方法 解决方案三: this在java中我见过比较好的理解是这样的: java中的this翻译成中文意思都可以理解为"我的"的意思,在你定义的那个类里面,不管你在哪里

Java网络编程基础(三) Datagram类使用方法

Datagram(数据包)是一种尽力而为的传送数据的方式,它只是把数据的目的地记录在数据包中,然后就直接放在网络上,系统不保证数据是否能安全送到,或者什么时候可以送到,也就是说它并不保证传送质量. 1 UDP套接字 数据报(Datagram)是网络层数据单元在介质上传输信息的一种逻辑分组格式,它是一种在网络中传播的.独立的.自身包含地址信息的消息,它能否到达目的地.到达的时间.到达时内容是否会变化不能准确地知道.它的通信双方是不需要建立连接的,对于一些不需要很高质量的应用程序来说,数据报通信是一

分析Java的类加载器与ClassLoader(二):classpath与查找类字节码的顺序,分析ExtClassLoader与AppClassLoader的源码

先回顾一下classpath classpath的作用:         classpath的作用是指定查找类的路径:当使用java命令执行一个类(类中的main方法)时,会从classpath中进行查找这个类.  指定classpath的方式一:         设置环境变量CLASSPATH,多个路径之间使用英文的分号隔开,也可以指定为jar包路径.          示例:CLASSPATH=c:/myclasses/;c/mylib/aa.jar;c:/mylib/bb.jar;.  

Java类中域和方法设置中的常见错误

在Java程序中,类是其实现功能的核心.如果说开发Java应用程序,就是一个类的构建与使用的过程这一点都不为过.可惜的是,不少程序员在编写类的时候,还是会犯一些常规的错误.笔者就对此做一个总结,望各位读者能够引起重视. 一.基本数据类型的初始化问题. 在Java语言中,跟其他开发语言一样,都定义了一些基本的数据类型.程序员可以拿来直接使用,还可以用来构造其他一些复杂的应用程序.不过在Java中使用这些基本数据类型有些不同.在Java语言中,这个基本数据类型主要用在两个地方,分别为类中的成员或者局

数据库-java中的流属于工具类吗,还是属于一种数据类型?

问题描述 java中的流属于工具类吗,还是属于一种数据类型? 数据库存储的blob类型数据不应该是一串二进制数吗,为什么都说它是二进制流. 解决方案 工具类都在这个java.util中定义, 你看包就知道了 流是专门处理Io的. 有一套对应的类来支持它 数据库存储的blob类型数据不应该是一串二进制数吗,为什么都说它是二进制流 存储的数据是二进制数,但是这个二进制数的格式是某个对象的 这就是流对象. 你要通过流对象读出二进制数啊 这和你用流读取一个二进制文件是一样的 解决方案二: 流是一种抽象类

java中如何理解这种初始化类实例的方式,我只懂new的方式

问题描述 java中如何理解这种初始化类实例的方式,我只懂new的方式 java中public boolean setViewValue(Viewarg0,Object arg1){ImageView imageView =(ImageView)arg0 Bitmap bitmap=(Bitmap)arg1}如何理解这种初始化类实例的方式,我只懂new的方式 解决方案 这种构造方法是将 依赖的成员对象作为构造函数的参数传进入来的,而传人时还是需要new的啊. 解决方案二: 这没有什么别的,只是a

java中实现Serializable接口的类有什么特点?

问题描述 java中实现Serializable接口的类有什么特点? java中实现Serializable接口的类有什么特点,还看到这个实现该接口的类里面一个常量,private static final long serialVersionUID = 1L;如何理解这个常量呢 解决方案 Serializable是一个标识接口,没有需要实现的方法,凡是实现该接口的类都可以进行序列化和反序列化操作. 实现serializable接口的作用是就是可以把对象存到字节流,然后可以恢复.所以你想如果你的

Java 中的内部类和匿名类

Java 内部类有什么好处?为什么需要内部类? 首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口.由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能. 不过你可能要质疑,更改一下方法的不就行了吗? 的确,以此作为设计内部类的理由,实在没有说服力. 真正的原因是这样的,java 中的内部类和接口加在一起,可以的解决常被 C++ 程序员抱怨 ja

java中匿名对象和匿名类都有关键词new吧

问题描述 java中匿名对象和匿名类都有关键词new吧 java中匿名对象和匿名类都有关键词new吧 那他们应该怎么区分呢 是不是匿名类就没有方法体 匿名对象就有方法体呢 具体是如何区分的呢 解决方案 首先,匿名对象是没有变量接收的对象,例如 new Date(); 这就是定义了一个Date 类型的匿名对象,之所以叫匿名,是因为它没有变量接收,不能调用对象的.操作. 其次,匿名类是没有显示定义类文件的类,但它不一定是匿名对象,例如: Out anonyInter=new Out(){// 获取匿