最近整理了一下项目中可能需要用到的java路径问题,方便查阅。
/**
* 获得工程根目录
*windows下
*/
public static String getRootPath(){
String path = FileUtil.class.getResource("/../../").toString();
try {
path = java.net.URLDecoder.decode(path, "UTF-8");
path = path.replace("file:/", "");//注意这里
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return path;
}
/**
*linux下
**/
public static String getRootPathLinux(){
String path = FileUtil.class.getResource("/../../").toString();
try {
path = java.net.URLDecoder.decode(path, "UTF-8");
path = path.replace("file:", "");//少了"/"
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return path;
}
*******************************************************************************************
system.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径
2、使用File提供的函数获取当前路径:
File directory = new File("");//设定为当前文件夹
try{
System.out.println(directory.getCanonicalPath());//获取标准的路径
System.out.println(directory.getAbsolutePath());//获取绝对路径
}catch(Exceptin e){}
File.getCanonicalPath()和File.getAbsolutePath()大约只是对于new File(".")和new File("..")两种路径有所区别。
# 对于getCanonicalPath()函数,“."就表示当前的文件夹,而”..“则表示当前文件夹的上一级文件夹
# 对于getAbsolutePath()函数,则不管”.”、“..”,返回当前的路径加上你在new File()时设定的路径
# 至于getPath()函数,得到的只是你在new File()时设定的路径
比如当前的路径为 C:\test :
File directory = new File("abc");
directory.getCanonicalPath(); //得到的是C:\test\abc
directory.getAbsolutePath(); //得到的是C:\test\abc
direcotry.getPath(); //得到的是abc
File directory = new File(".");
directory.getCanonicalPath(); //得到的是C:\test
directory.getAbsolutePath(); //得到的是C:\test\.
direcotry.getPath(); //得到的是.
File directory = new File("..");
directory.getCanonicalPath(); //得到的是C:\
directory.getAbsolutePath(); //得到的是C:\test\..
direcotry.getPath(); //得到的是..
分享到:
相关推荐
以下是对文档内容的详细解读,旨在整理Java路径问题相关的核心知识点。 ### 1. 类加载器与资源定位 文档中提到了使用`TestURL().class.getResource("")`方法来获取资源路径。在Java中,类加载器会使用`getResource...
【Java上机问题整理及解决】是针对初学者在进行Java编程实践时遇到的问题的汇总。这些问题主要包括但不限于以下几个方面: 1. **“Unsupported major.minor version”错误**:这是一个常见的编译与运行版本不匹配的...
Java Resource路径整理总结 Java Resource路径整理总结是 Java 编程语言中一个重要的知识点,主要介绍了 Java 中 Resource 路径的整理总结,旨在帮助开发者更好地理解和使用 Resource 路径。 Java Resource 路径...
"更多Java资料学习.url"可能是一个链接,指向更多的Java学习资源,扩展学习路径。而"jsymxx88.zip"可能是另一个压缩包,可能包含更高级的Java项目源码或者特定主题的补充资料。 总的来说,这门【Java+Web开发实践...
### JAVA核心知识整理 #### JVM基础 - **JVM(Java虚拟机)概述**: - Java虚拟机是运行所有Java程序的基础环境,它提供了一个抽象的计算机模型,能够执行编译后的Java字节码。 - **JVM内存区域**: - **程序...
以下是对Java IO的详细整理: 首先,Java中的`File`类是操作文件和目录的基础,它提供了许多方法来创建、删除、重命名文件以及检查文件属性。在案例1中,通过`new File("D:\\hello.txt")`创建了一个`File`对象,...
标题中的“140个Java源码实例Java实用源码整理learns”表明这是一个集合了140个Java编程的实战代码示例,旨在帮助学习者深入理解和掌握Java编程语言。这些实例通常涵盖了许多Java的基础和进阶概念,可能是从小到大的...
安装后,设置JAVA_HOME环境变量,指向JDK的安装路径,确保PATH环境变量包含bin目录,这样命令行就能识别javac和java命令。 2. ** HelloWorld 程序**:学习任何编程语言的第一步通常是编写“Hello, World!”程序。在...
这份"JAVA核心知识点整理——java自学资料.rar"包含了一份详细的Java学习资源,旨在帮助已经具备一定Java基础知识的开发者进一步提升技能,深入理解Java的底层机制。以下是这份资料可能涵盖的一些核心知识点和学习...
路径配置正确后,就可以在命令行中直接运行Java程序。配置环境变量的临时方法可以通过set命令在DOS命令行中设置,而永久方法则是在系统环境变量中添加。 开发Java程序的第一步通常是写一个简单的Hello World程序,...
其次,“Java实用源码整理”部分可能涵盖了日常开发中的常见问题解决方案,例如文件操作、网络通信、多线程同步、数据结构实现(如链表、树、队列、栈)、数据库操作、设计模式的应用等。这些源码实例能让你更好地...
Java作为一门广泛使用的编程语言,其基础知识在面试中经常被考察。这份"Java基础知识方面的面试题pdf"很可能是对Java核心概念、语法、类库...建议按照一定的学习路径,结合理论与实践,逐步提升自己的Java技术水平。
本压缩包文件“JAVA核心面试知识整理”显然提供了一份详尽的资料,旨在帮助Java开发者巩固和准备面试过程中的关键问题。 【描述】:“个人资料个人资料个人资料” 虽然描述部分重复了“个人资料”这个词,但我们...
在“21天学会java网游编程Java实用源码整理learns”这个学习资源中,我们主要探讨的是如何在21天内快速掌握Java语言,并将其应用于网络游戏编程。这个压缩包包含了一些关键的学习材料,如“下载及使用说明.txt”提供...
标题《JAVA核心面试知识整理》指出了整理的内容主要是Java基础知识,对于面试来说,这些基础知识点是必考的核心,掌握这些知识对求职者至关重要。描述中提到“搞懂这些,最起码不会饿死”,暗示这些知识点是Java编程...
### Java私塾学习笔记整理 #### 第一章:Java入门 **一、Java是什么?** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年推出。它旨在为跨平台开发提供一种通用的语言环境,使开发者能够在任何...
这份"JAVA核心知识点整理.pdf"文档详尽地涵盖了Java开发中的关键概念和技术,包括JVM、Java集合框架、多线程并发、Spring框架原理、网络通信库Netty、分布式协调服务Zookeeper、负载均衡策略以及分布式缓存等。...
在给定的场景中,我们需要实现的功能是遍历指定包路径下的所有类,获取它们的属性信息,包括属性的注解和注释,并以表格形式输出。 首先,我们需要通过`Package.getPackage(String name)`方法获取指定包名的Package...
在 JAVA 中,CLASSPATH 设置是指设置 JAVA 类路径,用于告诉 JVM哪里可以找到JAVA 类文件。可以通过 java 命令的 -cp 参数指定 class path,也可以设置 Windows 系统的 %CLASSPATH% 变量或 Unix/Linux 系统的 $$...
11. **IOC容器实现**:通过配置文件确定类路径,扫描并实例化类,使用反射和依赖注入管理对象。 12. **Java类加载器**:包括Bootstrap ClassLoader、Extension ClassLoader、Application ClassLoader和自定义类加载...