`

Java中获得路径

 
阅读更多

1、在java中经常会看到这样的代码 File file=new File("local/app.txt")。那么这个文件的路径是相对于系统属性key为user.dir的路径。代码如下:

                // 打印当前的路径
		File currentFile = new File("");
		printer.println(currentFile.getAbsolutePath());
		// 打印出user.dir属性
		printer.println(System.getProperty("user.dir"));

 如果我们修改user.dir的属性重新执行以上的代码会发现路径也会发生改变。File rootFile = new File("/");windows表示盘符的目录。

2、获得classpath下资源的路径

                 // 打印当前class路径的url
		printer.println(PathPrinter.class.getResource("").toString());

		// 下面的语句和getClassLoader().getResource("")相同,因为                                      // CLass.getResource做了下处理。参见起Class类resolveName方法
		printer.println(PathPrinter.class.getResource("/").toString());

 3、通过classLoader的API获得资源

                    printer.println(PathPrinter.class.getClassLoader().getResource("").toString());

 

我们的源码工程如下:

 里面代码请查看附件。

 

如果我们把该代码导出jar包然后供其他代码使用,




 
 然后此时调用会发现在这一行代码会报空指针( java.lang.NullPointerException)PathPrinter.class.getResource("")。经过跟踪代码发现此时我们使用的ClassLoader是sun.misc.Launcher.AppClassLoader。而这个ClassLoader查找资源是根据classPath查找,此时的ClassPath包含一个jar包,在sun.misc.URLClassPath.JarLoader中loader路径是为空的,在getResource方法中,代码如下:

   //此时paramString为class文件的相对路径
   JarEntry localJarEntry = this.jar.getJarEntry(paramString);
   //JarFile的getJarEntry方法如果入参是路径,得到的为空

 因此通过上面PathPrinter.class.getResource("")获得类所在的路径不一定都是可以的(如果该jar放入到osgi环境下,这段代码还是没有问题的)

  • 大小: 18.9 KB
  • 大小: 8.1 KB
分享到:
评论

相关推荐

    java项目中获取路径详解

    Java 项目中获取路径详解 在 Java 项目中,获取路径是非常重要的,因为它关系到项目的正确运行。特别是在 Java Web 项目中,获取路径变得更加复杂。下面我们将详细讨论 Java 项目中获取路径的方法和注意事项。 ...

    java中相对路径与绝对路径的问题

    5. Java 编程的 Class 中获得相对路径,绝对路径的窍门 在 Java 编程的 Class 中,我们可以使用 `Class.getResource()` 方法来获取相对路径和绝对路径。例如,我们可以使用 `FileTest.class.getResource("")` 来...

    java中获取路径

    java、servlet、jsp、class等等中如何获得所在的路径

    java 获取当前路径

    Java 获取当前路径是 Java 编程中一个常见的需求,下面我们将讨论如何在 Java 中获取当前路径。 方法一:使用 System.getProperty() 函数 使用 System.getProperty() 函数可以获取当前路径,该函数可以获取 Java ...

    JAVA获取各种路径总结

    在Java开发中,特别是在Web应用开发中,经常需要获取不同类型的路径,例如:当前Web应用的路径、特定文件的真实路径等。本文将详细讲解如何通过不同的方式来获取这些路径。 #### JSP中获取路径 1. **获取当前应用...

    JAVA中获取各种路径

    在Java开发中,路径处理是常见且重要的环节,尤其是在Web应用中,正确处理各种路径能够确保资源的准确访问和系统的稳定运行。以下是对标题“JAVA中获取各种路径”及其描述和部分内答所提及的几种路径获取方法的详细...

    java文件路径获取

    本文将详细介绍Java中获取文件路径的各种方法及其应用场景,帮助开发者更好地理解和掌握这些技巧。 #### 二、基本概念 在深入讨论之前,我们需要了解几个基本概念: - **Classpath**: 是Java运行环境的一个重要...

    Java获得某个路径下的所有文件列表,并写入指定文件

    以上就是关于“Java获得某个路径下的所有文件列表,并写入指定文件”的详细解释。通过这些知识点,你可以轻松实现文件列表的获取与写入操作。记住,始终要根据具体项目需求和安全性考虑进行适当的调整。

    java绝对路径和相对路径

    ### Java中的绝对路径与相对路径 在Java编程中,路径管理是进行文件操作的重要组成部分,尤其是在Web应用开发中。本文将详细介绍如何在Java中获取不同类型的路径,包括Web服务器下的文件路径、本地路径以及相对路径...

    JAVA中如何得到文件路径.pdf

    ### JAVA中如何获取文件路径详解 #### 一、概述 在Java编程中,获取文件路径是一项基础而重要的技能。无论是处理本地文件还是部署在Web容器中的应用,了解如何正确地获取文件路径对于程序的正常运行至关重要。本文...

    Java中获取文件路径的几种方式

    在Java编程语言中,处理文件路径是开发过程中常见的需求之一。理解如何在Java中获取文件路径,特别是区分绝对路径和相对路径,对于构建稳定、可移植的应用程序至关重要。本文将深入探讨Java中获取文件路径的多种方法...

    Java相对路径绝对路径总结

    在物理路径中,“./”代表当前目录,“../”代表上级目录。 #### 二、JSP/Servlet中的相对路径和绝对路径 ##### 2.1 服务器端的地址 服务器端的相对地址是指相对于Web应用的地址。在服务器端解析时,这些地址与...

    java路径获得几种方法.txt

    在Java编程中,经常需要处理文件路径问题,特别是当涉及到Web应用程序时。Java提供了多种方法来获取虚拟路径与物理路径,这对于文件操作至关重要。本文将详细介绍几种获取Java路径的方法,并对每种方法的应用场景...

    总结一下java获取路径几种途径

    在Java程序中,可以通过`System.getenv`方法获取环境变量,进而得到存储在环境变量中的路径信息。 ### 6. 使用URI和URL 对于Web应用来说,路径还可能以URI或URL的形式存在,如数据库连接字符串、外部资源链接等。 ...

    WEB 项目中JAVA取得WEBROOT物理路径

    在一个标准的Java Web应用中,`WEB-INF`目录是放置如`web.xml`配置文件、类文件(通过编译Java源代码得到)和库文件(JARs)的地方。而WEBROOT则是Web应用的根目录,通常包含HTML、CSS、JavaScript等静态资源。Web...

    Java开发绝对和相对路径问题

    Java 开发中,路径问题是非常重要的一方面,不同的路径表示方式会带来不同的结果,了解绝对路径和相对路径的概念和使用方法对Java 开发非常重要。本文总结了Java 开发中的路径问题,帮助开发朋友方便解决路径问题,...

    java 无向图所有最短路径算法的实现

    通过松弛操作,即不断尝试缩短当前已知的最短路径,直到所有路径不再更新,从而得到最短路径。在无向图中,Bellman-Ford算法可以找到从指定起点到所有其他顶点的最短路径,包括可能存在负权边的情况。 4. **Breadth...

Global site tag (gtag.js) - Google Analytics