总结一下java获取路径几种途径
Java获取项目路径的多种方式

Java获取项⽬路径的多种⽅式在正常开发的情况下,我们经常会遇到:需要获取指定⽂件路径,虽然我知道项⽬在本机的路径,⼀旦打包发布了,再根据绝对路径获取指定⽂件,肯定是获取不到的。
这时候就需要⽤java给我们提供的⼀些获取相对路径⽅法了。
@Testpublic void url() throws IOException {// 获取当前项⽬下路径:⽅式⼀File file = new File("");String filePath = file.getCanonicalPath();// 输出:D:\MyCode\log\log4j2-javaSystem.out.println(filePath);// 获取当前项⽬下路径:⽅式⼆// 输出:D:\MyCode\log\log4j2-javaSystem.out.println(System.getProperty("user.dir"));// 获取类加载的根路径String path = this.getClass().getResource("/").getPath().substring(1);// 输出:D:/MyCode/log/log4j2-java/target/classes/System.out.println(path);// 获取当前类的所在⼯程路径String path1 = this.getClass().getResource("").getPath().substring(1);// 输出:D:/MyCode/log/log4j2-java/target/classes/com/gzl/cn/System.out.println(path1);// 获取类加载指定⽂件或者⽂件夹路径String path2 = this.getClass().getResource("/data/DataConvert.dll").getPath().substring(1);System.out.println(path2);//获取所有的类路径包括jar包的路径System.out.println(System.getProperty("java.class.path"));}这个是我的项⽬路径。
java通过反射获取路径的方法(一)

java通过反射获取路径的方法(一)Java通过反射获取路径介绍在Java中,反射是一种强大的机制,它允许我们在运行时获取类的信息并动态地调用类的方法。
通过反射,我们还可以获取类的路径。
本文将详细介绍多种方法,用于在Java中通过反射获取路径。
方法一:使用Class对象通过Class对象可以获取类的加载路径。
1.先获取Class对象,例如:Class<?> clazz = ;2.然后使用ClassLoader类的getResource()方法获取资源路径,例如:URL resource = ().getResource("");String path = ();方法二:使用Class类的getResource()方法Class类提供了getResource()方法用于获取资源路径。
1.先获取类的相对路径,例如:String relativePath = "myFolder/";2.然后使用getResource()方法获取资源路径,例如:URL resource = (relativePath);String path = ();方法三:使用ClassLoader类的getSystemResource()方法ClassLoader类的getSystemResource()方法可以获取系统资源路径。
1.先获取类的相对路径,例如:String relativePath = "myFolder/";2.然后使用getSystemResource()方法获取资源路径,例如:URL resource = (relativePath);String path = ();方法四:使用File类通过File类可以获取文件路径。
1.先获取类的相对路径,例如:String relativePath = "myFolder/";2.然后使用File类获取文件路径,例如:File file = new File(relativePath);String path = ();方法五:使用System类System类提供了getProperty()方法用于获取系统属性。
java获取项目的相对路径

Java获取项目的相对路径一、什么是项目的相对路径在Java中,获取项目的相对路径是指获取Java项目在文件系统中的相对于某个参照物的路径。
这个参照物可以是Java项目的根目录、当前工作目录或者其他指定的路径。
二、获取项目的相对路径的方法Java提供了多种方法来获取项目的相对路径,下面将介绍其中几种常用的方法。
1. 使用Class类的getResource方法Class类是Java中表示对象类的类,它提供了获取类的资源的方法。
可以通过Class类的getResource方法来获取指定资源的URL。
代码如下:URL resourceUrl = MyClass.class.getResource("/resource.txt");String resourcePath = resourceUrl.getPath();上述代码中,MyClass为当前类的类名,/resource.txt为要获取的资源路径。
getResource方法返回的URL对象可以通过getPath方法获取路径的字符串形式,即为相对路径。
2. 使用ClassLoader类的getResource方法ClassLoader类是Java中用于加载类和资源的类加载器的基类,它提供了获取资源的方法。
可以通过ClassLoader类的getResource方法来获取指定资源的URL。
代码如下:ClassLoader classLoader = MyClass.class.getClassLoader();URL resourceUrl = classLoader.getResource("resource.txt");String resourcePath = resourceUrl.getPath();上述代码中,MyClass为当前类的类名,resource.txt为要获取的资源路径。
getResource方法返回的URL对象可以通过getPath方法获取路径的字符串形式,即为相对路径。
关于java和web工程项目中各种路径的获取总结

关于java和web工程项目中各种路径的获取总结参考网络文章整理1. 获取web服务器项目的真实物理路径Java代码2. 相对路径的获得说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目)Java代码上述相对路径中,java项目中的文件是相对于项目的根目录web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于tomcat安装目录\bin)3. 类加载目录的获得(即当运行时某一类时获得其装载目录)3.1. 通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)Java代码录位于src目录下)上式中将TestAction,test.txt替换成对应成相应的类名和文件名字即可3.2. 通用方法二(此方法和1.1中的方法类似,不同的是此方法必须以'/'开头)InputStream is=Test1.class.getResourceAsStream("/test.txt");(test.txt文件的路径为项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)4. web项目根目录的获得(发布之后)4.1. 从servlet出发可建立一个servlet在其的init方法中写入如下语句Java代码(结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\ (002_ext为项目名字) 如果是调用了s1.getRealPath("")则输出D:\工具\Tomcat-6.0\webapps\002_ext(少了一个"\")4.2. 从httpServletRequest出发Java代码结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\5. classpath的获取(在Eclipse中为获得src或者classes目录的路径)5.1. 方法一Java代码输出:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/5.2. 方法二Java代码输出:JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/ WEB-INF/classes/另外,如果想把文件放在某一包中,则可以通过以下方式获得到文件(先定位到该包的最后一级目录)egJava代码输出:JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classe s/jdom/(JdomParse为src目录下jdom包中的类)在jsp和class文件中调用的相对路径不同。
java获取文件完整路径的方法 -回复

java获取文件完整路径的方法-回复Java是一种广泛使用的编程语言,它提供了丰富的类库和方法来处理文件和目录。
在Java中获取文件的完整路径是一项非常常见的任务,因为它可以帮助我们更好地理解文件的位置和结构。
本文将一步一步回答关于如何在Java中获取文件的完整路径的问题。
第一步:指定文件的相对路径在Java中,文件可以使用相对路径或绝对路径来指定。
相对路径是相对于当前工作目录或项目目录的路径,而绝对路径是从文件系统的根目录开始的路径。
在本例中,我们假设文件位于项目目录下的一个名为"files"的文件夹中。
第二步:创建一个File对象要获取文件的完整路径,我们首先要创建一个File对象。
File类是Java 中处理文件和目录的基本类,可以用于获取文件的路径、名称、大小等信息。
我们可以使用以下代码创建一个File对象:javaFile file = new File("files/example.txt");在这个例子中,我们创建了一个名为example.txt的文件。
请注意,虽然我们只提供了相对路径,但Java会自动将其解释为相对于项目目录的路径。
第三步:获取文件的完整路径一旦我们创建了一个File对象,就可以使用它的`getAbsolutePath()`方法来获取文件的完整路径。
代码如下所示:javaString absolutePath = file.getAbsolutePath();`getAbsolutePath()`方法返回一个String类型的值,表示文件的完整路径。
它将包括文件的所在目录以及文件的名称和扩展名。
在本例中,它将返回`/path/to/project/files/example.txt`。
第四步:处理特殊情况在有些情况下,当我们获取文件的完整路径时,可能会遇到一些特殊的情况。
下面是一些常见的特殊情况及其解决方法:1. 文件不存在:如果指定的文件不存在,`getAbsolutePath()`方法将返回文件的路径,但不包括文件的名称。
java 获取当前项目指定资源路径的命令

java 获取当前项目指定资源路径的命令在Java开发过程中,需要获取当前项目指定资源路径的命令是非常常见的操作。
这个操作可以帮助我们在代码中获取项目的资源文件,比如配置文件、图片等,以便进行相关的读取或操作。
下面将详细介绍如何使用Java获取当前项目指定资源路径的命令。
1. 使用getClassLoader()方法获取资源路径Java提供了一个ClassLoader类,这个类可以帮助我们获取Java虚拟机中加载的所有类以及资源信息。
我们可以通过这个类的getResource()或者getResourceAsStream()方法来获取资源路径。
下面是一个使用ClassLoader的示例:```public class MainClass {public static void main(String[] args) {// 获取当前类的ClassLoaderClassLoader classLoader =MainClass.class.getClassLoader();// 获取资源路径URL resourceUrl =classLoader.getResource("config.properties");String resourcePath = resourceUrl.getPath();// 输出资源路径System.out.println(resourcePath);}}```在上面的代码中,我们首先使用MainClass类的类加载器获取配置文件config.properties的路径。
为了获取资源路径,我们可以调用ClassLoader类的getResource()方法。
这个方法的参数是需要获取的资源的相对路径,相对路径是相对于类加载路径的。
2. 使用Class类中的getResource()方法获取资源路径除了使用ClassLoader获取资源路径,还可以使用Class类中的getResource()方法。
Java中获取当前路径

Java中获取当前路径1. 获取当前路径(绝对路径)package p01;import java.io.File;import java.io.IOException;import .URL;public class Hello01 {public static void main(String[] args) {System.out.println(getCurrentPath1());// D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binSystem.out.println(new Hello01().getCurrentPath2());// D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\bin\p01System.out.println(getCurrentPath3());// D:\eclipseJavaWorkspace\eclipse202006Workspace\HelloSystem.out.println(getCurrentPath4());// file:/D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/System.out.println(getCurrentPath5());// D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binSystem.out.println(getCurrentPath6());// D:\eclipseJavaWorkspace\eclipse202006Workspace\HelloSystem.out.println(getCurrentPath7());// /D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin//* 结果:D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binD:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\bin\p01D:\eclipseJavaWorkspace\eclipse202006Workspace\Hellofile:/D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binD:\eclipseJavaWorkspace\eclipse202006Workspace\HelloD:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\bin*/}// 获取当前类的所在⼯程路径;public static String getCurrentPath1() {File f = new File(Hello01.class.getResource("/").getPath());return f.getPath();}// 获取当前类的绝对路径;public String getCurrentPath2() {File f = new File(this.getClass().getResource("").getPath());return f.getPath();}// 获取当前类的所在⼯程路径;public static String getCurrentPath3() {File directory = new File("");// 参数为空// getCanonicalPath()返回的就是标准的将符号完全解析的路径String courseFile = "";try {courseFile = directory.getCanonicalPath();} catch (IOException e) {e.printStackTrace();}return courseFile;}// 获取当前类的所在⼯程路径;// file:/D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/public static String getCurrentPath4() {URL path = Thread.currentThread().getContextClassLoader().getResource("");return path.toString();}public static String getCurrentPath5() {return System.getProperty("java.class.path");}public static String getCurrentPath6() {return System.getProperty("user.dir");}public static String getCurrentPath7() {String path = Thread.currentThread().getContextClassLoader().getResource("").getPath();// /D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/ String p = new File(path).getAbsolutePath();// D:\eclipseJavaWorkspace\eclipse202006Workspace\Hello\binreturn p;}}View Code2. 获取资源⽂件的路径,或读⽂件获取src下资源⽂件编译后的路径(即classes路径):String s2 = Thread.currentThread().getContextClassLoader().getResource("").getPath(); // /D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin///String s3 = Thread.currentThread().getContextClassLoader().getResource("/").getPath();// java⼯程下报错:NullPointerExceptionString s4 = Thread.currentThread().getContextClassLoader().getResource("test.txt").getPath();// /D:/eclipseJavaWorkspace/eclipse202006Workspace/Hello/bin/test.txt 或者类名.class.getClassLoader().getResource("").getPath();或者 this.class.getClassLoader().getResource("").getPath();//此⽅法获得的path,虽然前⾯多⼀个“/”,但仍然可以⽤于构造FileFile file2 = new File(s2);File file4 = new File(s4);InputStream in = new BufferedInputStream(new FileInputStream(new File(s2)));//还可以使⽤如下,直接返回输⼊流对象InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("test.txt");//test.txt在src夹下(即classpath下)if(null == resourceAsStream) {throw new RuntimeException("nullPointer...");}else {StringBuilder sb = new StringBuilder();byte[] buf = new byte[512];int len = -1;try {while((len = resourceAsStream.read(buf))!=-1) {sb.append(new String(buf,0,len));}System.out.println(sb.toString());} catch (IOException e) {e.printStackTrace();}}3. Java中的getResourceAsStream有以下⼏种:1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以'/'开头则是从ClassPath根下获取。
Java获取项目中的路径

Java获取项⽬中的路径Java获取项⽬中的路径博客分类:JavaEE在项⽬中经常需要获取某个⽂件的路径:在这⾥提供⼀些获取路径的⽅法..1.此种⽅式获取的路径,是当前类所在的路径:Java代码1. UserDAOTest.class.getResource("UserDAOTest.class")结果如下:file:/E:/java/workspace/testProject/WebContent/WEB-INF/classes/com/java/business/dao/UserDAOTest.class2.此种⽅式获取当前classpath的路径:Java代码1. Thread.currentThread().getContextClassLoader().getResource("")结果如下:file:/E:/java/workspace/testProject/WebContent/WEB-INF/classes/3.此种⽅式获取系统资源⽂件的路径.如果为空,则是获取classpath所在的路径。
Java代码1. ClassLoader.getSystemResource("")结果如下:file:/E:/java/workspace/testProject/WebContent/WEB-INF/classes/4.此种⽅式获取UserDAOTest class⽂件的路径。
Java代码1. UserDAOTest.class.getResource("")结果如下:file:/E:/java/workspace/testProject/WebContent/WEB-INF/classes/com/business/dao/5.此种⽅式,获取项⽬所在的磁盘。
Java代码1. new File("/").getAbsolutePath()结果如下:E:\6.此种⽅式,获取项⽬名称的绝对路径。
java获取当前路径的方法

Java获取当前路径的方法1. 介绍在Java编程中,有时候我们需要获取当前程序所在的路径,以便进行文件操作或者加载资源等操作。
本文将介绍几种获取当前路径的方法,以及它们的优缺点和适用场景。
2. System.getProperty方法使用System.getProperty方法可以获取当前程序的一些系统属性,其中包括用户的工作目录。
通过”user.dir”属性可以获取当前程序所在的路径。
String currentPath = System.getProperty("user.dir");System.out.println("当前路径:" + currentPath);这种方法简单直接,适用于大多数情况下获取当前路径的需求。
但需要注意的是,System.getProperty方法返回的路径可能因操作系统而异,因此在跨平台开发时需要注意兼容性。
3. ClassLoader.getResource方法通过Java中的ClassLoader类的getResource方法,我们可以获取当前类加载的根路径,从而间接获取当前程序所在的路径。
例如,通过下面的代码可以获取当前类所在的路径:String currentPath = getClass().getClassLoader().getResource("").getPath(); System.out.println("当前路径:" + currentPath);这种方法适用于获取类路径下的资源文件的路径,常用于读取配置文件等操作。
但需要注意的是,如果当前类是在jar包中运行的,那么该方法将返回null,因为jar包中的类没有对应的文件路径。
4. File类的相对路径Java的File类提供了一种简单的方法来获取当前程序所在的路径,即通过创建一个临时文件并获取其父路径。
通过下面的代码可以实现:File currentFile = new File("");String currentPath = currentFile.getAbsoluteFile().getParent();System.out.println("当前路径:" + currentPath);这种方法无需引入额外的依赖,适用于获取当前程序所在的路径。
java获取相对路径文件的方法

java获取相对路径文件的方法在Java编程中,我们经常需要获取文件的路径。
有时候我们需要获取相对路径文件,即相对于当前工作目录的文件路径。
本文将介绍如何在Java中获取相对路径文件的方法。
在Java中,可以使用File类来表示文件和目录的路径。
File类提供了一系列方法来获取文件的路径信息。
对于相对路径文件,我们可以使用以下方法来获取其路径:1. 使用相对路径字符串创建File对象我们可以使用相对路径字符串来创建一个File对象。
相对路径是相对于当前工作目录的路径。
可以使用System.getProperty("user.dir")方法来获取当前工作目录的路径。
```javaString relativePath = "data/file.txt";File file = new File(System.getProperty("user.dir"), relativePath);```在上面的代码中,我们创建了一个名为file.txt的相对路径文件。
其中,`System.getProperty("user.dir")`返回当前工作目录的路径。
然后,我们将相对路径字符串和当前工作目录的路径传递给File构造函数来创建File对象。
2. 使用相对路径字符串获取文件路径如果只需要获取相对路径文件的路径字符串,而不需要创建File对象,我们可以使用Paths类来获取路径。
Paths类提供了一个静态方法`Paths.get()`来获取路径对象。
```javaString relativePath = "data/file.txt";String path = Paths.get(System.getProperty("user.dir"), relativePath).toString();```在上面的代码中,我们使用`Paths.get()`方法来获取相对路径文件的路径对象,然后使用`toString()`方法将路径对象转换为字符串。
java 获取当前项目当前路径的方法

文章标题:Java 中获取当前项目当前路径的方法在 Java 开发中,经常会遇到需要获取当前项目当前路径的情况,例如读取配置文件、加载资源文件等。
本文将深入探讨在 Java 中获取当前项目当前路径的方法,并提供多种实用的解决方案。
1. 使用 System.getProperty() 方法Java 中可以通过 System 类的 getProperty() 方法来获取系统属性。
其中,通过获取"user.dir"属性可以获得当前项目的当前路径。
代码示例如下:```javaString currentPath = System.getProperty("user.dir"); System.out.println("当前项目当前路径为:" + currentPath);```上述代码通过调用getProperty("user.dir")方法即可获取当前项目当前路径,其实现简单且方便。
2. 使用 File 类的 getAbsolutePath() 方法另一种获取当前项目当前路径的方法是通过 File 类的实例来获取绝对路径。
代码示例如下:```javaFile file = new File("");String currentPath = file.getAbsolutePath();System.out.println("当前项目当前路径为:" + currentPath);```通过创建一个空的File实例,然后调用其getAbsolutePath()方法,同样可以获取当前项目当前路径。
3. 使用 Class 类的 getResource() 方法在 Java 开发中,经常需要加载资源文件,可以利用 Class 类的getResource() 方法来获取当前项目当前路径。
代码示例如下:```javaClass clazz = getClass();URL currentPathUrl = clazz.getResource("");System.out.println("当前项目当前路径为:" + currentPathUrl.getPath());```通过调用getResource("")方法,可以得到当前项目当前路径的URL,从而实现获取当前路径的目的。
Java中获取当前路径的几种方法总结

Java中获取当前路径的⼏种⽅法总结Java中获取当前路径的⼏种⽅法总结1、利⽤System.getProperty()函数获取当前路径: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/abcdirectory.getAbsolutePath(); //得到的是C:/test/abcdirecotry.getPath(); //得到的是abcFile directory = new File(".");directory.getCanonicalPath(); //得到的是C:/testdirectory.getAbsolutePath(); //得到的是C:/test/.direcotry.getPath(); //得到的是.File directory = new File("..");directory.getCanonicalPath(); //得到的是C:/directory.getAbsolutePath(); //得到的是C:/test/..direcotry.getPath(); //得到的是..另外:System.getProperty()中的字符串参数如下:System.getProperty()参数⼤全# java.version Java Runtime Environment version# java.vendor Java Runtime Environment vendor# java.vendor.url Java vendor URL# java.home Java installation directory# java.vm.specification.version Java Virtual Machine specification version# java.vm.specification.vendor Java Virtual Machine specification vendor# Java Virtual Machine specification name# java.vm.version Java Virtual Machine implementation version# java.vm.vendor Java Virtual Machine implementation vendor# Java Virtual Machine implementation name# java.specification.version Java Runtime Environment specification version# java.specification.vendor Java Runtime Environment specification vendor# Java Runtime Environment specification name# java.class.version Java class format version number# java.class.path Java class path# java.library.path List of paths to search when loading libraries# java.io.tmpdir Default temp file path# piler Name of JIT compiler to use# java.ext.dirs Path of extension directory or directories# Operating system name# os.arch Operating system architecture# os.version Operating system version# file.separator File separator ("/" on UNIX)# path.separator Path separator (":" on UNIX)# line.separator Line separator ("/n" on UNIX)# User's account name# user.home User's home directory# user.dir User's current working directoryJAVA中获取路径:1.jsp中取得路径:以⼯程名为TEST为例:(1)得到包含⼯程名的当前页⾯全路径:request.getRequestURI()结果:/TEST/test.jsp(2)得到⼯程名:request.getContextPath()结果:/TEST(3)得到当前页⾯所在⽬录下全名称:request.getServletPath()结果:如果页⾯在jsp⽬录下 /TEST/jsp/test.jsp(4)得到页⾯所在服务器的全路径:application.getRealPath("页⾯.jsp")结果:D:/resin/webapps/TEST/test.jsp(5)得到页⾯所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent(); 结果:D:/resin/webapps/TEST2.在类中取得路径:(1)类的绝对路径:Class.class.getClass().getResource("/").getPath()结果:/D:/TEST/WebRoot/WEB-INF/classes/pack/(2)得到⼯程的路径:System.getProperty("user.dir")结果:D:/TEST3.在Servlet中取得路径:(1)得到⼯程⽬录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。
Java如何获取当前类路径

Java如何获取当前类路径1.如何获得当前⽂件路径常⽤:(1).Test.class.getResource("")得到的是当前类FileTest.class⽂件的URI⽬录。
不包括⾃⼰!(2).Test.class.getResource("/")得到的是当前的classpath的绝对URI路径。
(3).Thread.currentThread().getContextClassLoader().getResource("")得到的也是当前ClassPath的绝对URI路径。
(4).Test.class.getClassLoader().getResource("")得到的也是当前ClassPath的绝对URI路径。
(5).ClassLoader.getSystemResource("")得到的也是当前ClassPath的绝对URI路径。
尽量不要使⽤相对于System.getProperty("user.dir")当前⽤户⽬录的相对路径,后⾯可以看出得出结果五花⼋门。
(6) new File("").getAbsolutePath()也可⽤。
2.Web服务器(1).Tomcat在类中输出System.getProperty("user.dir");显⽰的是%Tomcat_Home%/bin(2).Resin不是你的JSP放的相对路径,是JSP引擎执⾏这个JSP编译成SERVLET的路径为根.⽐如⽤新建⽂件法测试File f = new File("a.htm");这个a.htm在resin的安装⽬录下(3).如何读⽂件使⽤ServletContext.getResourceAsStream()就可以(4).获得⽂件真实路径String file_real_path=ServletContext.getRealPath("mypath/filename");不建议使⽤request.getRealPath("/");3.⽂件操作的类,不建议使⽤,可以使⽤commons io类import java.io.*;import .*;import java.util.*;/*** 此类中封装⼀些常⽤的⽂件操作。
java获取当前路径(包含tomcat)

java获取当前路径(包含tomcat)1、利用System.getProperty()函数获取当前路径:System.out.println(System.getProperty("user.dir"));//user.d ir指定了当前的路径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 = newFile("abc");directory.getCanonicalPath(); //得到的是C:\test\abcdirectory.getAbsolutePath(); //得到的是C:\test\abcdirecotry.getPath(); //得到的是abcFile directory = new File(".");directory.getCanonicalPath(); //得到的是C:\testdirectory.getAbsolutePath(); //得到的是C:\test\.direcotry.getPath(); //得到的是.File directory = new File("..");directory.getCanonicalPath(); //得到的是C:\directory.getAbsolutePath(); //得到的是C:\test\..direcotry.getPath(); //得到的是..另外:System.getProperty()中的字符串参数如下:System.getProperty()参数大全# java.versionJava Runtime Environment version # java.vendorJava Runtime Environment vendor # java.vendor.urlJava vendor URL # java.homeJava installation directory # java.vm.specification.version Java Virtual Machine specification version #java.vm.specification.vendor Java Virtual Machine specification vendor # Java Virtual Machine specification name # java.vm.version Java Virtual Machine implementation version #java.vm.vendor Java Virtual Machine implementation vendor # Java Virtual Machine implementation name #java.specification.version Java Runtime Environment specification version #java.specification.vendor Java Runtime Environment specification vendor # Java Runtime Environment specification name # java.class.version Java class format version number # java.class.path Java class path # java.library.path List of paths to search when loading libraries # java.io.tmpdir Default temp file path # pilerName of JIT compiler to use # java.ext.dirsPath of extension directory or directories # Operating system name # os.archOperating system architecture # os.versionOperating system version # file.separatorFile separator ("/" on UNIX) # path.separatorPath separator (":" on UNIX) # line.separatorLine separator ("\n" on UNIX) # User's account name # user.homeUser's home directory # user.dirUser's current working directorytomcat下获得项目的绝对路径private String projectName="sz_pro"; // 你项目的名称//获取当前项目的绝对路径public String getPorjectPath(){String nowpath; //当前tomcat的bin目录的路径如D:\java\software\apache-tomcat-6.0.14\bin String tempdir;nowpath=System.getProperty("user.dir");tempdir=nowpath.replace("bin", "webapps"); //把bin 文件夹变到webapps文件里面tempdir+="\\"+projectName; //拼成D:\java\software\apache-tomcat-6.0.14\webapps\sz_pro return tempdir;}另外还有一个方法可以用来获取类的绝对路径(当前的classpath)getClass().getResource("/").toString();。
总结一下java获取路径几种途径

总结一下java获取路径几种途径- -在写java程序时不可避免要获取文件的路径...总结一下,遗漏的随时补上1.可以在servlet的init方法里String path = getServletContext().getRealPath("/");这将获取web项目的全路径例如 :E:\eclipseM9\workspace\tree\tree是我web项目的根目录2.你也可以随时在任意的class里调用this.getClass().getClassLoader().getResource("/").getPath();这将获取到classes目录的全路径例如 : E:\eclipseM9/workspace/tree/WEB-INF/classes/这个方法也可以不在web环境里确定路径,比较好用3.request.getContextPath();获得web根的上下文环境如 /treetree是我的web项目的root context获取web项目的全路径Java路径问题最终解决方案—可定位所有资源的相对路径寻址前言Java的路径问题,非常难搞。
最近的工作涉及到创建和读取文件的工作,这里我就给大家彻底得解决Java路径问题。
我编写了一个方法,比ClassLoader.getResource(String 相对路径)方法的能力更强。
它可以接受“.. /”这样的参数,允许我们用相对路径来定位classpath外面的资源。
这样,我们就可以使用相对于classpat h的路径,定位所有位置的资源!Java路径Java中使用的路径,分为两种:绝对路径和相对路径。
具体而言,又分为四种:一、URI形式的绝对资源路径如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.bURL是URI的特例。
URL的前缀/协议,必须是Java认识的。
java中获取文件夹下文件的绝对路径

一、介绍在Java中,获取文件夹下文件的绝对路径是一个非常常见的需求。
无论是在文件的操作或者在文件的读取时,我们都有可能需要知道文件所在的绝对路径。
本文将介绍如何在Java中获取文件夹下文件的绝对路径,以及一些常见的注意事项和技巧。
二、使用File类Java中获取文件夹下文件的绝对路径,最常用的方法就是使用File类。
File类是Java中用于表示文件和目录路径名的抽象表示形式。
我们可以使用File类的一些方法来获取文件的绝对路径。
1. 使用getAbsolutePath()方法File类中有一个getAbsolutePath()方法,它返回文件的绝对路径。
我们可以通过这个方法来获取文件夹下文件的绝对路径。
```javaFile file = new File("文件路径");String absolutePath = file.getAbsolutePath();```2. 使用getCanonicalPath()方法除了getAbsolutePath()方法之外,File类还有一个getCanonicalPath()方法,它返回文件的规范路径。
它与getAbsolutePath()方法的不同之处在于,getCanonicalPath()方法会解析所有的符号信息。
通常情况下,我们使用getAbsolutePath()方法就可以满足我们的需求,但在一些特殊情况下,我们可能需要使用getCanonicalPath()方法来获取规范路径。
```javaFile file = new File("文件路径");String canonicalPath = file.getCanonicalPath();```三、注意事项和技巧虽然使用File类可以方便地获取文件夹下文件的绝对路径,但在实际的开发中,我们还是需要注意一些事项和技巧。
1. 路径分隔符在不同的操作系统中,路径的分隔符是不同的。
java中获取类加载路径和项目根路径的5种方式分析

java中获取类加载路径和项⽬根路径的5种⽅式分析复制代码代码如下:package my;import java.io.File;import java.io.IOException;import .URL;public class MyUrlDemo {public static void main(String[] args) {MyUrlDemo muDemo = new MyUrlDemo();try {muDemo.showURL();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void showURL() throws IOException {// 第⼀种:获取类加载的根路径 D:\git\daotie\daotie\target\classesFile f = new File(this.getClass().getResource("/").getPath());System.out.println(f);// 获取当前类的所在⼯程路径; 如果不加“/” 获取当前类的加载⽬录 D:\git\daotie\daotie\target\classes\myFile f2 = new File(this.getClass().getResource("").getPath());System.out.println(f2);// 第⼆种:获取项⽬路径 D:\git\daotie\daotieFile directory = new File("");// 参数为空String courseFile = directory.getCanonicalPath();System.out.println(courseFile);// 第三种: file:/D:/git/daotie/daotie/target/classes/URL xmlpath = this.getClass().getClassLoader().getResource("");System.out.println(xmlpath);// 第四种: D:\git\daotie\daotieSystem.out.println(System.getProperty("user.dir"));/** 结果: C:\Documents and Settings\Administrator\workspace\projectName* 获取当前⼯程路径*/// 第五种:获取所有的类路径包括jar包的路径System.out.println(System.getProperty("java.class.path"));}}。
java获取当前类绝对路径的方法

java获取当前类绝对路径的方法在Java中,要获取当前类的绝对路径,可以使用以下方法:
java.
String path =
MyClass.class.getProtectionDomain().getCodeSource().getLoca tion().getPath();
这行代码通过`MyClass.class`获取当前类的`Class`对象,然后调用
`getProtectionDomain().getCodeSource().getLocation().getPat h()`来获取当前类的绝对路径。
这种方法适用于大多数情况,但是需要注意的是,在某些情况下,比如在打包成JAR文件后,这种方法可能无法获取到正确的路径。
因此,在实际使用中,需要根据具体的情况来选择合适的方法来获取当前类的绝对路径。
总之,通过这种方法,可以方便地获取当前类的绝对路径,从而进行文件操作或其他相关操作。
java获取路径的各种方法(总结)

java获取路径的各种⽅法(总结)(1)、request.getRealPath("/");//不推荐使⽤获取⼯程的根路径(2)、request.getRealPath(request.getRequestURI());//获取jsp的路径,这个⽅法⽐较好⽤,可以直接在servlet和jsp中使⽤(3)、request.getSession().getServletContext().getRealPath("/");//获取⼯程的根路径,这个⽅法⽐较好⽤,可以直接在servlet 和jsp中使⽤(4)、 this.getClass().getClassLoader().getResource("").getPath();//获取⼯程classes 下的路径,这个⽅法可以在任意jsp,servlet,java⽂件中使⽤,因为不管是jsp,servlet其实都是java程序,都是⼀个 class。
所以它应该是⼀个通⽤的⽅法。
0、关于绝对路径和相对路径1、request.getRealPath⽅法:request.getRealPath("/")得到的路径:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest\⽅法:request.getRealPath(".")得到的路径:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest\.⽅法:request.getRealPath("")得到的路径:C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTestrequest.getRealPath("web.xml")C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\strutsTest\web.xml2、request.getParameter("");ActionForm.getMyFile();⽅法:String filepath = request.getParameter("myFile");得到的路径:D:\VSS安装⽬录\users.txt⽅法:String filepath = ActionForm.getMyFile();得到的路径:D:\VSS安装⽬录\users.txt--------------------------------------------------strutsTest 为⼯程名myFile 在ActionForm中,为private String myFile;在jsp页⾯中:为<html:file property="myFile"></html:file>--------------------------------------------------3、获得系统路径在Application中:System.getProperty("user.dir")在Servlet中:ServletContext servletContext = config.getServletContext();String rootPath = servletContext.getRealPath("/");在jsp中:application.getRealPath("")4、其他11.可以在servlet的init⽅法⾥String path = getServletContext().getRealPath("/");这将获取web项⽬的全路径例如 :E:\eclipseM9\workspace\tree\tree是我web项⽬的根⽬录2.你也可以随时在任意的class⾥调⽤this.getClass().getClassLoader().getResource("").getPath(); // 经过测试,这种⽅法是安全的,最有效的this.getClass().getResource("/conf").getPath();// 经过测试,这种⽅法也是安全的这将获取到classes⽬录的全路径例如 : /D:/workspace/strutsTest/WebRoot/WEB-INF/classes/还有 this.getClass().getResource("").getPath().toString();这将获取到 /D:/workspace/strutsTest/WebRoot/WEB-INF/classes/bl/这个⽅法也可以不在web环境⾥确定路径,⽐较好⽤3.request.getContextPath();获得web根的上下⽂环境如 /treetree是我的web项⽬的root context5、其他2java获取路径⼏种途径- -1. jdk如何判断程序中的路径呢?⼀般在编程中,⽂件路径分为相对路径和绝对路径,绝对路径是⽐较好处理的,但是不灵活,因此我们在编程中对⽂件进⾏操作的时候,⼀般都是读取⽂件的相对路径,相对路径可能会复杂⼀点,但是也是⽐较简单的,相对的路径,主要是相对于谁,可以是类加载器的路径,或者是当前 java ⽂件下的路径,在jsp编程中可能是相对于站点的路径,相对于站点的路径,我们可以通过getServletContext().getRealPath("\") 和request.getRealPath("\"):这个是取得站点的绝对路径;⽽getContextPath():取得站点的虚拟路径;2. class.getClassLoader.getPath():取得类加载器的路径:什么是类加载器呢?⼀般类加载器有系统的和⽤户⾃⼰定义的;系统的ClassLoader就是jdk提供的,他的路径就是jdk下的路径,或者在 jsp编程,⽐如Tomcat ,取得的类加载器的位置就是tomaca⾃⼰设计的加载器的路径,明⽩了这些之后,对于⽂件路径的操作就会相当的清楚,我们在编程的时候,只要想清楚我们所操作的⽂件是相对于什么路径下的,取得相对路径就可以了.6、总结1、获取web服务器下的⽂件路径request.getRealPath("/")application.getRealPath("")【jsp中】ServletContext().getRealPath("")System.getProperty("user.dir")【不同位置调⽤,获取的路径是动态变化的】2、获取本地路径jsp中,<html:file property="myFile"/>request.getParameter("myFile");ActionForm.getMyFile();获取的值相同:如D:\VSS安装⽬录\users.txt*********************************this.getClass().getClassLoader().getResource("").getPath();==/D:/workspace/strutsTest/WebRoot/WEB-INF/classes/this.getClass().getResource("").getPath().toString();==/D:/workspace/strutsTest/WebRoot/WEB-INF/classes/bl/3、获取相对路径request.getContextPath();另外:在Java⽂件中getResource或getResourceAsStream均可例:getClass().getResourceAsStream(filePath);//filePath可以是" /filename",这⾥的/代表web发布根路径下WEB-INF/classes默认使⽤该⽅法的路径是:WEB-INF/classes.已经在 Tomcat中测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
总结一下java获取路径几种途径- -在写java程序时不可避免要获取文件的路径...总结一下,遗漏的随时补上1.可以在servlet的init方法里String path = getServletContext().getRealPath("/");这将获取web项目的全路径例如 :E:\eclipseM9\workspace\tree\tree是我web项目的根目录2.你也可以随时在任意的class里调用this.getClass().getClassLoader().getResource("/").getPath();这将获取到classes目录的全路径例如 : E:\eclipseM9/workspace/tree/WEB-INF/classes/这个方法也可以不在web环境里确定路径,比较好用3.request.getContextPath();获得web根的上下文环境如 /treetree是我的web项目的root context获取web项目的全路径Java路径问题最终解决方案—可定位所有资源的相对路径寻址前言Java的路径问题,非常难搞。
最近的工作涉及到创建和读取文件的工作,这里我就给大家彻底得解决Java路径问题。
我编写了一个方法,比ClassLoader.getResource(String 相对路径)方法的能力更强。
它可以接受“.. /”这样的参数,允许我们用相对路径来定位classpath外面的资源。
这样,我们就可以使用相对于classpat h的路径,定位所有位置的资源!Java路径Java中使用的路径,分为两种:绝对路径和相对路径。
具体而言,又分为四种:一、URI形式的绝对资源路径如:file:/D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.bURL是URI的特例。
URL的前缀/协议,必须是Java认识的。
URL可以打开资源,而URI则不行。
URL和URI对象可以互相转换,使用各自的toURI(),toURL()方法即可!二、本地系统的绝对路径D:/java/eclipse32/workspace/jbpmtest3/bin/aaa.bJava.io包中的类,需要使用这种形式的参数。
但是,它们一般也提供了URI类型的参数,而URI类型的参数,接受的是URI样式的String。
因此,通过URI转换,还是可以把URI样式的绝对路径用在java.io包中的类中。
三、相对于classpath的相对路径如:相对于file:/D:/java/eclipse32/workspace/jbpmtest3/bin/这个路径的相对路径。
其中,bin是本项目的classpath。
所有的Java源文件编译后的.class文件复制到这个目录中。
四、相对于当前用户目录的相对路径就是相对于System.getProperty("user.dir")返回的路径。
对于一般项目,这是项目的根路径。
对于JavaEE服务器,这可能是服务器的某个路径。
这个并没有统一的规范!所以,绝对不要使用“相对于当前用户目录的相对路径”。
然而:默认情况下,java.io 包中的类总是根据当前用户目录来分析相对路径名。
此目录由系统属性user.dir 指定,通常是Java 虚拟机的调用目录。
这就是说,在使用java.io包中的类时,最好不要使用相对路径。
否则,虽然在J2SE应用程序中可能还算正常,但是到了J2EE程序中,一定会出问题!而且这个路径,在不同的服务器中都是不同的!相对路径最佳实践推荐使用相对于当前classpath的相对路径因此,我们在使用相对路径时,应当使用相对于当前classpath的相对路径。
ClassLoader类的getResource(String name),getResourceAsStream(String name)等方法,使用相对于当前项目的classpath的相对路径来查找资源。
读取属性文件常用到的ResourceBundle类的getBundle(String path)也是如此。
通过查看ClassLoader类及其相关类的源代码,我发现,它实际上还是使用了URI形式的绝对路径。
通过得到当前classpath的URI形式的绝对路径,构建了相对路径的URI形式的绝对路径。
(这个实际上是猜想,因为JDK内部调用了SUN的源代码,而这些代码不属于JDK,不是开源的。
)相对路径本质上还是绝对路径因此,归根结底,Java本质上只能使用绝对路径来寻找资源。
所有的相对路径寻找资源的方法,都不过是一些便利方法。
不过是API在底层帮助我们构建了绝对路径,从而找到资源的!得到classpath和当前类的绝对路径的一些方法下面是一些得到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应用程序中资源的寻址上文中说过,当前用户目录,即相对于System.getProperty("user.dir")返回的路径。
对于JavaEE服务器,这可能是服务器的某个路径,这个并没有统一的规范!而不是我们发布的Web应用程序的根目录!这样,在Web应用程序中,我们绝对不能使用相对于当前用户目录的相对路径。
在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。
这样,我们只需要提供相对于Web应用程序根目录的路径,就可以构建出定位资源的绝对路径。
这是我们开发Web应用程序时一般所采取的策略。
通用的相对路径解决办法Java中各种相对路径非常多,不容易使用,非常容易出错。
因此,我编写了一个便利方法,帮助更容易的解决相对路径问题。
Web应用程序中使用JavaSE运行的资源寻址问题在JavaSE程序中,我们一般使用classpath来作为存放资源的目的地。
但是,在Web应用程序中,我们一般使用classpath外面的WEB-INF及其子目录作为资源文件的存放地。
在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。
这样,我们只需要提供相对于Web应用程序根目录的路径,就可以构建出定位资源的绝对路径。
Web应用程序,可以作为Web应用程序进行发布和运行。
但是,我们也常常会以JavaSE的方式来运行Web应用程序的某个类的main方法。
或者,使用JUnit测试。
这都需要使用JavaSE的方式来运行。
这样,我们就无法使用ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。
而JDK提供的ClassLoader类,它的getResource(String name),getResourceAsStream(String name)等方法,使用相对于当前项目的classpath的相对路径来查找资源。
读取属性文件常用到的ResourceBundle类的getBundle(String path)也是如此。
它们都只能使用相对路径来读取classpath下的资源,无法定位到classpath外面的资源。
Classpath外配置文件读取问题如,我们使用测试驱动开发的方法,开发Spring、Hibernate、iBatis等使用配置文件的Web应用程序,就会遇到问题。
尽管Spring自己提供了FileSystem(也就是相对于user,dir目录)来读取Web配置文件的方法,但是终究不是很方便。
而且与Web程序中的代码使用方式不一致!至于Hibernate,iBatis就更麻烦了!只有把配置文件移到classpath下,否则根本不可能使用测试驱动开发!这怎么办?通用的相对路径解决办法面对这个问题,我决定编写一个助手类ClassLoaderUtil,提供一个便利方法[public static URL getExtendResource(String relativePath)]。
在Web应用程序等一切Java程序中,需要定位classpath外的资源时,都使用这个助手类的便利方法,而不使用Web应用程序特有的ServletContext.getRealPath("/ ")方法来定位资源。
利用classpath的绝对路径,定位所有资源这个便利方法的实现原理,就是“利用classpath的绝对路径,定位所有资源”。
ClassLoader类的getResource("")方法能够得到当前classpath的绝对路径,这是所有Java程序都拥有的能力,具有最大的适应性!而目前的JDK提供的ClassLoader类的getResource(String 相对路径)方法,只能接受一般的相对路径。