`
snoopy7713
  • 浏览: 1149741 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

获取JAVA路径,包括CLASSPATH外的路径

    博客分类:
  • java
阅读更多
注明:如果从ANT启动程序,this.getClass().getResource("")取出来的比较怪,直接用JAVA命令行调试就可成功。
 
得到classpath和当前类的绝对路径的一些方法

         获得CLASSPATH之外路径的方法:
         URL base = this.getClass().getResource(""); //先获得本类的所在位置,如/home/popeye/testjava/build/classes/net/
         String path = new File(base.getFile(), "../../../"+name).getCanonicalPath(); //就可以得到/home/popeye/testjava/name

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

  1.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表示法。

    在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。这样,我们只需要提供相对于Web应用程序根目录的路径,就可以构建出定位资源的绝对路径。
  
  


注意点:
    1.尽量不要使用相对于System.getProperty("user.dir")当前用户目录的相对路径。这是一颗定时炸_弹,随时可能要你的命。

  2.尽量使用URI形式
的绝对路径资源。它可以很容易的转变为URI,URL,File对象。

  3.尽量使用相对classpath的相对路径。不要使用绝对路径。使用上面ClassLoaderUtil类的public static URL getExtendResource(String relativePath)方法已经能够使用相对于classpath的相对路径定位所有位置的资源。

  4.绝对不要使用硬编码的绝对路径。因为,我们完全可以使用ClassLoader类的getResource("")方法得到当前classpath的绝对路径。

使用硬编码的绝对路径是完全没有必要的!它一定会让你死的很难看!程序将无法移植!

  如果你一定要指定一个绝对路径,那么使用配置文件,也比硬编码要好得多!

  当然,我还是推荐你使用程序得到classpath的绝对路径来拼资源的绝对路径
分享到:
评论

相关推荐

    java项目中获取路径详解

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

    基于获取JAVA路径,包括CLASSPATH外的路径的方法详解

    在Java编程中,获取Java路径以及CLASSPATH外部的路径是非常关键的操作,尤其当需要加载类、资源文件或进行系统级操作时。这篇文章主要探讨了几种获取这些路径的方法。 首先,我们来看一下如何获取Java路径。Java...

    java文件路径获取

    Java提供了多种方法来获取文件路径,主要包括: - `Class.getResource(String path)` - `Class.getResourceAsStream(String path)` - `ClassLoader.getResource(String path)` - `ClassLoader.getResourceAsStream...

    Java中获取类路径classpath的简单方法(推荐)

    在Java编程语言中,了解如何获取类路径(classpath)是至关重要的,因为类路径决定了Java虚拟机(JVM)在运行时如何查找和加载类。本文将详细介绍在Java中获取类路径的几种常见方法,以供开发者参考。 首先,类路径...

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

    Java提供了多种方式来获取路径信息,包括系统属性、`File`类、`ClassLoader`、`Path`类、环境变量和URL或URI。不同场景下,应当选择最适合的方法来获取路径。例如,在Web应用中,可能更偏向于使用`ClassLoader`来...

    Java路径问题最终解决方案之一.

    ### Java路径问题最终解决方案之一 #### 一、引言与背景 在进行Java开发时,文件...综上所述,通过理解和应用上述推荐的最佳实践及获取路径的方法,可以有效地解决Java路径问题,确保程序在不同环境下的稳定运行。

    JAVA获取CLASSPATH路径的方法详解

    本文将详细解析如何在Java中获取`CLASSPATH`路径,并介绍相关的方法和技术。 首先,`ClassLoader`类是Java中负责加载类和资源的核心组件。它提供了两个方法来获取资源: 1. `public URL getResource(String name)`...

    Java环境配置与设置JAVA_HOME_CLASSPATH_PATH的目的

    CLASSPATH 环境变量是 Java 类路径,它的设置内容是 Java 类库的路径。例如,CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar。 设置 CLASSPATH 环境变量的作用是为了告诉 Java 编译器和运行时环境_...

    13-Java语言(classpath环境变量)

    classpath可以包含多个路径,用分号(Windows)或冒号(Unix/Linux)分隔。路径可以是绝对路径,也可以是相对路径。如果类文件在JAR文件中,可以指定JAR的完整路径,JVM会自动展开JAR并查找类文件。 四、默认...

    Java命令行classpath的设置

    Java命令行classpath(类路径)的设置是Java开发过程中的一项基础操作,对于理解和运行Java程序至关重要。类路径是指定Java虚拟机(JVM)在执行Java程序时查找类文件的位置。正确配置类路径能确保JVM能够找到并加载...

    java路径解决方案

    本文将深入探讨Java路径解决方案,旨在帮助开发者理解和解决与此相关的各种问题。 首先,我们来了解一下Java中的类路径(Classpath)。类路径是Java虚拟机(JVM)寻找类文件的路径集合,它决定了哪些目录和.jar文件...

    java实现获取指定路径下指定格式的所有文件

    java实现 获取指定路径下 指定格式 的所有文件

    ant自动获取文件路径

    在Ant中,我们可以方便地定义任务,包括编译、打包、测试等,而获取文件路径是其中一项基本操作。 在Ant的构建文件(通常命名为build.xml)中,我们使用各种标签来指定和操作文件路径。`<property>`标签用于设置和...

    Java路径问题

    本文将深入探讨Java路径问题,包括如何解决Java安装和使用过程中的常见路径问题,以及如何有效地管理类路径(classpath)。 #### 一、Java路径基础 Java路径主要涉及两种类型:类路径(classpath)和系统路径。类路径...

    java classloader classpath 张孝祥

    ClassPath可以包含多个路径,路径之间用分号(Windows)或冒号(Unix/Linux)分隔。常见的ClassPath组成部分包括: - 应用程序的类文件所在目录。 - 第三方库所在的jar文件。 - 扩展目录下的jar文件。 #### 四、`...

    Java 中的 ClassPath 和 Package

    ClassPath是Java虚拟机(JVM)查找类文件的路径。当JVM启动时,它需要知道在哪里能找到应用程序所依赖的类。如果没有正确配置ClassPath,JVM将无法找到所需的类,导致运行时错误,如"Can't find class"或...

    java的classpath的终结者(不会让你失望)

    `Classpath`是指Java运行时查找用户自定义类或资源文件的路径列表。它告诉Java虚拟机(JVM)和Java编译器(javac)到哪些位置寻找非标准库中的类文件。在默认情况下,如果未指定`classpath`,JVM和javac会在当前目录...

    Java路径问题最终解决方案之一.txt

    ### Java路径问题最终解决方案 #### 一、引言 在Java开发过程中,处理文件路径问题时常令人头痛。本文将深入探讨Java中的路径问题,并提供一个有效的解决方案,该方案旨在简化路径处理过程,使得开发者能够更加...

Global site tag (gtag.js) - Google Analytics