`

java路径问题小结

阅读更多
1.user.dir
 //通过来获取;此目录并非是固定的,而是根据该代码所属类运行时的环境而定。
 //普通的java程序中获得的是该类所属项目的根目录(d:\workspace\app)
 //在特定服务器下发布运行的javaweb程序则获得的是该服务器下提供运行环境的目录
 //(如用Tomcat将获得F:\Tomcat 6.0\bin)
 System.getProperties("user.dir")


2.classes目录
顾名思义指存放类文件的根目录。
  • 普通java程序的classes目录指app\bin
  • web项目的classes目录是指app\WebRoot\WEB-INF\classes


//在普通项目或web项目中
//s:获得classes目录绝对路径(包括TestClass类所属包目录)
//      app\bin\com\test
//    或app\WebRoot\WEB-INF\classes\com\test
//ss:获得classes目录绝对路径 
//      app\bin
//    或app\WebRoot\WEB-INF\classes
com.test.TestClass c=new com.test.TestClass();
String s=c.getClass().getResource("").getPath();
String ss=c.getClass().getClassLoader().getResource("").getPath();


3.web项目根目录(在服务器发布后) app\
(1)根据ServeletContext的getRealPath()方法获得绝对路径
//第一种获得"app"绝对路径f:\tomcat 6.0\webapps\app
//第二、三种获得"app\"绝对路径f:\tomcat 6.0\webapps\app\
getServletContext.getRealPath(""); 
getServletContext.getRealPath("\\"); 
getServletContext.getRealPath("/"); 

(2)根据HttpServletRequest的getContextPath()方法获得相对路径
getRequest().getContextPath();


4.在struts2框架中获得发布后web项目的根目录
//利用ServletActionContext的静态方法
String real=ServletActionContext.getServletContext().getRealPath("");
String relative=ServletActionContext.getRequest().getContextPath());

如果使用user.dir的值的话获得的路径为%Tomcat_Home%\bin,所以不推荐使用user.dir这一环境变量来获取路径。

对于新手来说,搞清楚java项目的开发目录和发布目录的信息是十分必要的,特别是使用集成开发环境下,目录的安排十分透明,如果脱离开发环境的话,很多新手都会对项目目录结构很迷茫。

转载请注明出处:http://383984216-qq-com.iteye.com/admin/blogs/1149024
1
10
分享到:
评论

相关推荐

    Java语言基础小结

    ### Java语言基础小结 #### 一、JDK, JRE, JVM的关系 - **JVM(Java Virtual Machine)**:Java虚拟机是Java程序跨平台运行的核心,它负责执行Java字节码(.class文件),确保Java程序可以在不同的平台上运行而...

    JAVA IO流小结

    JAVA IO流小结 JAVA IO流是指Java语言中用来实现输入/输出操作的机制。IO流是指任何有能力产出数据的数据源对象或者有能力接收数据的数据源对象。他屏蔽了实际的I/O设备处理数据的细节。 一、流的定义和分类 流是...

    Java个人学习小结

    ### Java个人学习小结 #### Java发展史及重要里程碑 - **起源与发展**: Java 的起源可以追溯到 1992 年,当时的 Sun Microsystems 公司开发了一种名为 Oak 的编程语言,最初是为了家用电器的智能化而设计的。然而...

    Java基础知识小结

    ### Java基础知识小结 #### 1.1 `getPath()`、`getAbsolutePath()`、`getCanonicalPath()`的区别 在Java中,处理文件路径时经常会用到`getPath()`、`getAbsolutePath()`以及`getCanonicalPath()`这三个方法。它们...

    Java 垃圾回收小结(一)

    本文将对Java垃圾回收进行小结,探讨其基本原理、类型以及常见算法。 1. 基本原理: Java中的内存分为堆(Heap)和栈(Stack)两部分,垃圾回收主要关注堆内存。当一个对象不再被任何引用指向时,它被视为可回收的...

    在JAVA文件中获取该项目的相对路径.doc

    4. 小结 在 JAVA 文件中获取项目的相对路径非常重要,特别是在 JSP/Servlet 中。通过了解绝对路径和相对路径的概念,我们可以更好地获取当前应用的相对路径和绝对路径,从而更好地处理文件和目录的操作。

    绝对路径和相对路径

    ##### 2.3 小结 为了确保引用的文件属于Web应用中的目录,并且避免因文件移动而导致的问题,最好在JSP/HTML页面中引用的CSS、JavaScript、Action等属性前加上应用的根目录路径。 #### 三、获取当前应用的相对路径...

    Java初学者—java的学习路径.doc

    #### 四、小结 对于Java初学者而言,熟悉并掌握上述提到的关键技术和工具至关重要。通过系统地学习JDK、深入理解JDK文档、熟练操作常用的应用服务器,可以为成为一名合格的Java开发者打下坚实的基础。此外,持续...

    java 技巧小结荟萃

    ### Java技巧小结荟萃 #### Javadoc API 文件产生器 Javadoc 是一款非常重要的工具,主要用于生成文档,能够从源代码注释中提取出有用的文档信息。这不仅有助于提高代码的可读性,还方便其他开发人员快速理解类、...

    java试题小结可以下载的

    【Java试题小结】 1. **Applet生命周期与方法**: - 在Java中,Applet的生命周期包括初始化、启动、绘画、停止和销毁几个阶段。`init()`方法用于初始化Applet所需资源,`paint()`方法负责在屏幕上绘制图形,如线条...

    Java Resource路径整理总结

    Java Resource路径整理总结 Java Resource路径整理总结是 Java 编程语言中一个重要的知识点,主要介绍了 Java 中 Resource 路径的整理总结,旨在帮助开发者更好地理解和使用 Resource 路径。 Java Resource 路径...

    java文件(File)小结.doc

    【文件(File)小结】 在Java编程中,文件(File)是数据持久化存储的重要方式,它不同于内存中临时存储的数据。File类是Java.io包中的核心类,提供了对文件和目录的操作。通过File对象,我们可以进行创建、删除、...

    获取项目的相对路径和绝对路径

    ### 六、小结 通过本文的学习,我们了解到在Java Web开发中,路径的选择和使用对程序的稳定性和可维护性至关重要。正确地使用`request.getContextPath()`、`request.getServletPath()`、`request.getServletContext...

    Java中Spring获取bean方法小结

    - 使用`ClassPathXmlApplicationContext`,从类路径加载配置文件。例如: ```java ApplicationContext context = new ClassPathXmlApplicationContext("appcontext.xml"); ``` - **通过代码注解**:Spring也...

    java的基础性小结与笔记

    系统环境变量JAVA_HOME应指向JDK安装路径,而Catalina_home可设置为Tomcat的安装目录。Tomcat目录结构中,Conf存放服务器配置文件,Logs记录服务器日志,Temp用于运行时临时文件,Webapps是应用资源目录,Work保存...

    Kruskal算法和prim算法求最小生成树学习小结(JAVA)

    最小生成树是图论中的一个重要概念,用于寻找一个无向加权图的边集合,使得这些边连接所有顶点,并且这些边的总权重尽可能小。在这个问题上,Kruskal算法和Prim算法是非常经典的解决方案,它们都是在寻找图的最小...

    Java调用Delphi开发的Dll小结.pdf

    - 编译Delphi DLL并将其放置在Java项目的类路径下,然后运行Java代码,Java将通过JNI调用Delphi函数。 2. 使用JNA调用Delphi开发的DLL: JNA提供了一种更简单的方式来调用非Java代码,无需像JNI那样创建C接口。...

    Java学习代码实例 JAVA基础,JAVA面向对象,JAVA高级.rar

    小结 Path的主要功能是设置JDK的可执行命令 classpath主要是在执行时候起作用,告诉JVM类的保存路径,一般设置成“.” 【注意】classpath只在java命令的时候起作用,而对于javac不起任何作用 2.简单JAVA程序 使用...

    Java数据结构和算法中文第二版(1)

    小结 问题 第2章 数组 Array专题Applet Java中数组的基础知识 将程序划分成类 类接口 Ordered专题applet 有序数组的Java代码 对数 存储对象 大O表示法 为什么不用数组表示一切? 小结 问题 实验 ...

Global site tag (gtag.js) - Google Analytics