一 相对路径的获得
说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)
String relativelyPath=System.getProperty("user.dir");
上述相对路径中,java项目中的文件是相对于项目的根目录
web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于 tomcat安装目录\bin)
二 类加载目录的获得(即当运行时某一类时获得其装载目录)
1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)
InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");
(test.txt文件的路径为 项目名\src\test.txt;类TestAction所在包的第一级目录位于src目录下)
上式中将TestAction,test.txt替换成对应成相应的类名和文件名字即可
1.2)通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头)
InputStream is=Test1.class.getResourceAsStream("/test.txt");
(test.txt文件的路径为 项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)
三 web项目根目录的获得(发布之后)
1 从servlet出发
可建立一个servlet在其的init方法中写入如下语句
ServletContext s1=this.getServletContext();
String temp=s1.getRealPath("/"); (关键)
结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\ (002_ext为项目名字)
如果是调用了s1.getRealPath("")则输出D:\工具\Tomcat-6.0\webapps\002_ext(少了一个"\")
2 从httpServletRequest出发
String cp11111=request.getSession().getServletContext().getRealPath("/");
结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\
四 classpath的获取(在Eclipse中为获得src或者classes目录的路径)
方法一 Thread.currentThread().getContextClassLoader().getResource("").getPath()
eg: String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println("t---"+t);
输出:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/
方法二 JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse为src某一个包中的类,下同)
eg:String p1=JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);
输出: JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/
另外,如果想把文件放在某一包中,则可以 通过以下方式获得到文件(先定位到该包的最后一级目录)
eg String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);
输出: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse为src目录下jdom包中的类)
分享到:
相关推荐
在Java开发过程中,遇到...总之,Java开发中的问题涉及环境配置、IDE使用、代码编写等多个方面,了解这些问题的解决方案,有助于提升开发效率和代码质量。在日常工作中,不断学习和积累经验,才能更好地应对各种挑战。
这份“华为等各大厂Java面试笔试题汇总”包含了众多Java核心技术与面试常见问题,旨在帮助求职者准备这些挑战。 1. **Java基础** - 类与对象:理解面向对象的基本概念,如封装、继承和多态。 - 构造器:掌握构造...
使用Eclipse运行第一个Java程序需要五个步骤:创建工程、创建包、创建类、输入源程序和运行程序。程序的运行方式有三种:在右键选中类HelloWorld,然后选中Run As->Java Application,在菜单中选择“Run --> Run”,...
6. 用户界面:虽然描述中未明确提到用户界面,但一个完整的软件可能包含交互式的UI,让用户可以方便地选择工程路径,查看统计结果,甚至自定义统计规则。 7. 配置与扩展性:软件可能允许用户配置统计规则,比如是否...
通过以上步骤,我们可以在Hadoop集群上使用Eclipse和Java编程语言实现WordCount应用。这个过程不仅包含了环境搭建、项目配置、代码编写以及最终的运行验证,而且能够帮助开发者深入理解MapReduce的工作原理及其实现...
- **相关PDF文档**:如《Java工程师必知必会》、《Java常用英语汇总》等,帮助深化理解和记忆。 这套教程不仅包含视频,还有丰富的文档和工具,确保学习者可以从理论到实践全面掌握Java开发。通过分享获取更多资源...
【Java面试题总汇】涵盖了计算机基础、网络、存储、缓存、分布式、安全等多个方面的知识点,这些都是在IT行业中特别是Java开发岗位面试时常见的问题。下面将分别详细讲解这些领域的重点内容。 **计算机基础** 在...
4. **选择要打包的工程**:勾选您要打包的工程,并指定输出路径和文件名。 5. **添加主类**:点击“Browse”按钮来选择包含主类的文件夹,并指定文件名。之后再选择具体的主类。 6. **完成导出**:点击“Finish”...
- 在工程列表中勾选你要打包的工程,设置导出的目标路径和文件名。 - 点击 `Browse`,选择主类所在的上一级目录,并在 `File name` 中输入 jar 文件名。 - 通过 `Browse` 指定主类,并点击 `OK`。 - 最后点击 `...
9. Mybatis如何封装结果集:支持结果映射到对象的多种方式,如resultMap、association和collection等。 10. Mybatis的动态SQL及执行原理:通过OGNL表达式和一些内置函数完成动态SQL片段的拼接和执行。 11. MyBatis的...
【基于Java工资管理系统...通过以上内容,我们可以看出基于Java的工资管理系统设计是一个涵盖管理理论、数据库设计、软件工程等多个领域的综合性项目,旨在提升企业的人力资源管理效率,实现工资管理的自动化和规范化。
- **什么是Java的类和对象**:定义类和对象的概念及其在Java中的作用。 - **必须掌握Java命名规范**:强调遵循Java命名规则的重要性,如变量名、方法名等。 - **区分实例成员和静态成员**:解析实例变量与静态...
修改`checkstyle`工具包中的`build.xml`文件,将其中的`工程路径/../src" includes="**/*.java"/>`中的`dir`属性值更改为实际的工程路径。 2. 在操作系统的环境变量中配置`ANT_HOME`和`Path`,确保`Apache Ant`...
【小型工资管理系统】是一款基于Java语言开发的软件应用,...总体来说,小型工资管理系统项目是一个综合实践,涵盖了Java编程、数据库管理和软件工程等多个方面的知识,有助于提升学生的实际开发能力和团队协作技巧。
设计模式是软件工程中的重要概念,这份资料汇集了23种常用的设计模式,并提供了相应的Java实现示例,对于提升编程技巧和设计能力非常有帮助。 综上所述,这些精品资料不仅覆盖了Java开发的基础知识,还包括了许多...
jar文件是Java的归档文件,它可以包含类、资源、元数据等,便于部署和执行。以下是两种将Java项目打包成jar文件的方法: 方法一:使用Eclipse IDE 1. 右键点击项目,在弹出菜单中选择“Export”。 2. 在弹出的导出...
首先,Java面试宝典new版.doc涵盖了Java语言的核心概念,如面向对象编程的基本原理,包括类、对象、封装、继承和多态等。此外,它还深入探讨了Java内存管理,包括垃圾回收机制、内存泄漏问题以及如何优化内存使用。...
这个名为"mybatis学习汇总.zip"的压缩包包含三个工程,旨在帮助用户全面掌握MyBatis的核心概念和实际应用。 1. **详细学习工程** 这个工程提供了一个全面的学习路径,涵盖了MyBatis的基本概念,如配置文件、Mapper...