方法(一)、通过某个对象的getClass()方法取得Class,其中包含了类的许多信息。
在其中找取得URL之类的方法,以便取得URL,然后调用URL的getpath()方法,取得字符串并稍作处理就得到该类的Class文件的绝对路径,在此基础上就可以方便的使用相对路径。
Object.getClass().getResource("/").getPath();
方法(二) 通过类加载器获取路径信息
public abstract class ClassLoader extends Object类加载器是负责加载类的对象。ClassLoader 类是一个抽象类。如果给定类的二进制名称,那么类加载器会试图查找或生成构成类定义的数据。一般策略是将名称转换为某个文件名,然后从文件系统读取该名称 的“类文件”。
(1) 利用Thread类中的类加载器
Thread.currentThread().getContextClassLoader()
(2) 利用Class类获取类加载器
ClassName.class(或者 对象.getClass()).getClassLoader()
API中ClassLoader的相关方法
1、 public URL getResource(String name)查找具有给定名称的资源。资源是可以通过类代码以与代码基无关的方式访问的一些数据(图像、声音、文本等)。资源名称是以 '/' 分隔的标识资源的路径名称。 此方法首先搜索资源的父类加载器;如果父类加载器为 null,则搜索的路径就是虚拟机的内置类加载器的路径。如果搜索失败,则此方法将调用 findResource(String) 来查找资源。
2、public static URL getSystemResource(String name)从用来加载类的搜索路径中查找具有指定名称的资源。此方法通过系统类加载器来查找资源。
方法(三)利用文件来获取路径
File ff=new File("");
API中File类相关的方法:
java.io.File 文件和目录路径名的抽象表示形式。
1、public String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串
2、public String getCanonicalPath() throws IOException
返回此抽象路径名的规范路径名字符串。
3、public String getPath()
将此抽象路径名转换为一个路径名字符串。所得字符串使用默认名称分隔符分隔名称序列中的名称。
4、 public boolean isAbsolute()测试此抽象路径名是否为绝对路径名。绝对路径名的定义与系统有关。在 UNIX 系统上,如果路径名的前缀是 "/",那么该路径名是绝对路径名。在 Microsoft Windows 系统上,如果路径名的前缀是后跟 "\\" 的盘符,或者是 "\\\\",那么该路径名是绝对路径名。
方法(四)利用System类提供信息
java.lang.System 包 public final class System extends Object 类 System 类包含一些有用的类字段和方法。它不能被实例化。在 System 类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。方 法:public static String getProperty(String key)
获取指定键指示的系 统属性。首先,如果有安全管理器,则用该键作为其参数来调用 checkPropertyAccess 方法。结果可能导致 SecurityException。 如果没有当前系统属性的集合,则首先用与 getProperties 方法相同的方式创建并初始化系统属性的集合。 参数: key - 系统属性的名称。返回: 系统属性的字符串值,如果没有带有此键的属性,则返回 null。
获取当前工作目录为:System.getProperty("user.dir")
例子:
// 方法一,利用Class的getResource方法类获取信息(实际上该方法委托ClassLoader类实现)
url= absp.getClass().getResource("/AbsPath.class");
path = url.getPath();
System.out.println("方法一:\nURL is : " + url);
System.out.println("get Path is : " + path);
System.out.println("Real Path is : " + path.substring(1)+"\n");
// 方法二,利用ClassLoader类获取信息
ClassLoader loader=Thread.currentThread().getContextClassLoader();
//或者
//loader = AbsPath.class.getClassLoader();
url=loader.getResource("");
path=url.getPath();
System.out.println("方法二:\nURL is : " + url);
System.out.println("get Path is : " + path);
System.out.println("Real Path is : " + path.substring(1));
System.out.println(ClassLoader.getSystemResource("")+"\n");
// 方法三,利用文件来处理
File ff=new File("");
System.out.println("方法三:\n"+ff.getAbsolutePath());
System.out.println(ff.getCanonicalPath());
System.out.println(ff.isAbsolute()+ff.getPath()+"\n");
//方法四,利用System类相关信息
System.out.println("方法四:\n"+System.getProperty("user.home"));//用户主目录
System.out.println(System.getProperty("user.dir"));//用户的当前工作目录
System.out.println(System.getProperty("java.class.path"));//Java类路径
System.out.println(System.getProperty("os.name"));//操作系统名称
System.out.println(System.getProperty("os.version"));//操作系统版本
结果:
方法一:
URL is : file:/D:/Java/EclipseWorkSpace/MyJavaDocs/AbsPath.class
get Path is : /D:/Java/EclipseWorkSpace/MyJavaDocs/AbsPath.class
Real Path is : D:/Java/EclipseWorkSpace/MyJavaDocs/AbsPath.class
方法二:
URL is : file:/D:/Java/EclipseWorkSpace/MyJavaDocs/
get Path is : /D:/Java/EclipseWorkSpace/MyJavaDocs/
Real Path is : D:/Java/EclipseWorkSpace/MyJavaDocs/
file:/D:/Java/EclipseWorkSpace/MyJavaDocs/
方法三:
D:\Java\EclipseWorkSpace\MyJavaDocs
D:\Java\EclipseWorkSpace\MyJavaDocs
false
方法四:
d:\我的文档
D:\Java\EclipseWorkSpace\MyJavaDocs
D:\Java\EclipseWorkSpace\MyJavaDocs
相关推荐
在Android开发中,获取视频缩略图是一项常见的需求,尤其在设计媒体库或者涉及多媒体展示的应用中。2011年9月27日的这篇博客深入探讨了如何利用`MediaMetadataRetriever`类来实现这一功能。`MediaMetadataRetriever`...
`File`类提供了一种文件和目录路径名的抽象表示形式,它代表了文件系统中的一个文件或目录。 - **构造函数**: - `File(String pathname)`:通过路径名字符串创建`File`对象。 - `File(File parent, String child...
在Java开发中,管理应用程序的配置信息通常是一个重要的任务,而Properties文件则是一个常见的存储配置信息的方式。在Spring框架中,有多种方法可以方便地读取和使用这些Properties文件中的内容。以下是一些主要的...
JavaExcel库,通常以jxl.jar的形式出现,是Java开发者用于读取和写入Microsoft Excel文件的一个强大工具。这个库提供了方便的API,使得在Java应用程序中操作Excel电子表格变得非常简单。它不仅支持基本的读写功能,...
在Java中,为了方便地处理文件及文件夹,`java.io`包中提供了一个非常重要的类——`File`类。这个类封装了与文件和目录相关的操作,使得开发人员能够轻松地进行文件管理。 ##### 1. 创建File对象 `File`类的对象...
在Java编程中,遍历目录文件是一项常见的任务,特别是在处理文件系统操作时。这个程序的主要目的是访问指定目录下的所有文件,记录每个文件的基本信息,如文件路径、最后修改时间以及文件大小,然后将这些信息写入到...
在Java开发中,YAML(YAML Ain't Markup Language)是一种流行的数据序列化格式,常用于配置文件。当我们需要在程序中动态读取或操作这些配置时,可以使用第三方库如Snake YAML来实现。本文将详细讲解如何使用Java...
除了基本的路径操作外,NIO.2还引入了一个新的概念——文件属性,这些属性可以通过`Path`类获取。例如,可以获取文件的最后修改时间: ```java BasicFileAttributes attrs = Files.readAttributes(path, ...
Java元数据——Class类 Java中的元数据Class类是一个基础的概念,它代理了这个类的类型信息、方法签名、属性等信息。每个类都有一个Class对象,它用来创建这个类的所有对象。每个对象的创建都依赖于Class对象的创建...
在获取Java开发环境时,必须下载并安装JDK,而非仅仅安装JRE(Java Runtime Environment)。JRE是运行Java应用程序的平台,而JDK包含了开发所需的所有工具,包括JRE。 JDK的安装目录包含多个关键部分: 1. **bin**...
这份"JAVA核心知识点整理——java自学资料.rar"包含了一份详细的Java学习资源,旨在帮助已经具备一定Java基础知识的开发者进一步提升技能,深入理解Java的底层机制。以下是这份资料可能涵盖的一些核心知识点和学习...
JDBC驱动程序分为四种类型:Type 1(纯Java驱动),Type 2(混合驱动),Type 3(网络协议驱动)和Type 4(纯Java的Socket驱动)。MySQL Connector/J是Type 4驱动,它完全由Java编写,无需依赖操作系统特定的库,...
JDBC 提供了一种统一的接口,使得开发者无需关心具体的数据库类型,就能够编写数据库访问代码,大大提高了代码的可移植性。以下是关于JDBC的一些核心知识点: 1. **JDBC的定义**: JDBC 是由Sun Microsystems(现...
高德地图路径规划API是高德开放平台提供的一种服务,它能够根据起点和终点的坐标,计算出最佳的行驶路线、距离和预计的行车时间。API支持多种出行方式,包括驾车、步行、骑行等,同时还可以处理多点路径规划,满足...
- UDDI(Universal Description, Discovery, and Integration):一种目录服务,它允许企业在Internet上注册和查找Web服务。 - WSDL(Web Services Description Language):XML格式的规范,用于描述Web服务及其接口...
在标题中提到的"Java版查找并打印有向图中的所有环路径",这个问题涉及到图论中的一个经典问题——寻找环路。在实际应用中,如线程死锁识别,有向图的环路检测具有重要价值,因为线程间的资源依赖关系可以被抽象为有...
在IT行业中,Java是一种广泛应用的编程语言,尤其在企业级应用开发中占有重要地位。基于Java的漏洞扫描系统是网络安全领域的一个重要课题,旨在帮助企业和组织发现并修复其信息系统中的安全漏洞。这个毕业设计项目...
### Java学习路径——工具篇 #### 一、Java开发工具包(JDK) 在开始Java的学习之旅之前,首先需要了解并安装Java开发工具包(JDK)。JDK是Java语言的核心组件,提供了Java语言运行环境所需的类库以及Java开发工具。 ...
这份"安卓Android源码——文件浏览返回路径.rar"的压缩包显然包含了关于如何在Android平台上实现这一功能的源代码示例。下面,我们将深入探讨这个主题,并结合可能包含的源码文件来分析相关知识点。 首先,让我们来...
下载后,将驱动jar文件放置在一个可被Java类路径访问的地方,比如`/usr/share/java/`。 要在Java程序中使用JDBC驱动连接MySQL,你需要导入必要的库,并编写连接代码。以下是一个简单的示例: ```java import java....