假设项目路径是E:\Workspaces\MyProgram\FilePath

1.使用System.getProperty("user.dir"),获得项目的根路径,返回String:E:\Workspaces\MyProgram\FilePath

2.使用File对象提供的获取绝对路径的方法获取根路径,new File("").getAbsolutePath(),返回String:E:\Workspaces\MyProgram\FilePath

3.可以使用File对象获取标准路径的方法来控制:
1)new File("..").getCanonicalPath(),返回String:E:\Workspaces\MyProgram

2)new File(".").getCanonicalPath(),返回String:E:\Workspaces\MyProgram\FilePath

4.使用class对象的getResource()方法获得bin目录,getClass().getResource(""),返回URL对象:file:/E:/Workspaces/MyProgram/FilePath/bin/

5. 使用ClassLoader对象的getResource()方法获得bin目录,getClass().getClassLoader().getResource(""),返回URL对象:file:/E: /Workspaces/MyProgram/FilePath/bin/
建议:
1.对于要获得的目录不在bin目录下的操作,可以使用1、2、3方式获得根目录,然后具体处理。

2. 对于规范的项目结构包含src/main/resources目录,资源文件一般放置于此,即bin目录下,可以使用4、5两种方法,另外这两种方法可以直接读取文件为InputStream可以直接进行使用,即getResourceAsStream(name)方法。

另外:System.getProperty()中的字符串参数如下:

java.version            //Java 运行时环境版本
java.vendor //Java 运行时环境供应商
java.vendor.url //Java 供应商的 URL
java.home //Java 安装目录
java.vm.specification.version //Java 虚拟机规范版本
java.vm.specification.vendor //Java 虚拟机规范供应商
java.vm.specification.name //Java 虚拟机规范名称
java.vm.version //Java 虚拟机实现版本
java.vm.vendor //Java 虚拟机实现供应商
java.vm.name //Java 虚拟机实现名称
java.specification.version //Java 运行时环境规范版本
java.specification.vendor //Java 运行时环境规范供应商
java.specification.name //Java 运行时环境规范名称
java.class.version //Java 类格式版本号
java.class.path //Java 类路径
java.library.path //加载库时搜索的路径列表
java.io.tmpdir //默认的临时文件路径
java.compiler //要使用的 JIT 编译器的名称
java.ext.dirs //一个或多个扩展目录的路径
os.name //操作系统的名称
os.arch //操作系统的架构
os.version //操作系统的版本
file.separator //文件分隔符(在 UNIX 系统中是“/”)
path.separator //路径分隔符(在 UNIX 系统中是“:”)
line.separator //行分隔符(在 UNIX 系统中是“/n”)
user.name //用户的账户名称
user.home //用户的主目录
user.dir //用户的当前工作目录

Java获取当前目录方法整理的更多相关文章

  1. Java获取路径方法&相对路径读取xml文件方法

    (1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI ...

  2. Linux Kernel中获取当前目录方法(undone)

    目录 . 引言 . 基于进程内存镜像信息struct mm_struct获取struct path调用d_path()获取当前进程的"绝对路径" . 基于文件描述符(fd).tas ...

  3. java获取当前方法

    1.获取当前方法堆栈,我们一般用 StackTraceElement[] stes = Thread.currentThread().getStackTrace(); 想要获取当前方法,切记不够灵活, ...

  4. C# 获取当前路径方法整理

    https://www.cnblogs.com/tianma3798/p/6553863.html1. //获取包含清单的已加载文件的路径或 UNC 位置. public static string ...

  5. Java 获取年月日方法

    package com.ob; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util ...

  6. java通用的方法整理

    判断字符串是否为空 public static boolean IsEmpty(String str){ if (str == null){ return true; } if ("&quo ...

  7. java 获取当前方法的被调用信息(被那个方法那个类那一行调用)

    public void testMethod(){ Test1 t1 = new Test1(); t1.my(); } public static void main(String[] args) ...

  8. JAVA文件中获取路径及WEB应用程序获取路径方法

    JAVA文件中获取路径及WEB应用程序获取路径方法 1. 基本概念的理解 `绝对路径`:你应用上的文件或目录在硬盘上真正的路径,如:URL.物理路径 例如: c:/xyz/test.txt代表了tes ...

  9. java 获取路径的各种方法

    (1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI ...

随机推荐

  1. 热门WEB前端职业你只需要掌握这些

    在知名的互联网企业里工作是一件很美好的事情,有很多的工作机会,而且企业们通过高薪以及令人羡慕的福利来争夺最优秀的人才.但是如果你花了大量的时间在招聘网站上和公司的帖子上,你可能会注意到在网页设计这个工 ...

  2. Spring-boot使用Ehcache配置

    1.配置类 @Configuration @EnableCaching public class CacheConfiguration {// implements CachingConfigurer ...

  3. Java和.NET的GZIP压缩功能对比

    本文主要比较了Java和.NET提供的GZIP压缩功能. 介绍 在本文中,我们将讨论Java和.NET提供的GZIP压缩功能,并且用实例来说明哪个压缩方法更佳. 在Java中,我们有提供GZIP压缩的 ...

  4. 解决MVC项目中,静态html 未找到时候,404的跳转

    using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using ...

  5. java学习笔记day05

    1.final关键字:防止被继承的类或覆写的方法修改,变量或方法被final定义后  会在内在中存在 特点:   1)可以修饰类.函数.变量.   2)被final修饰的类不可以被继承.   3)被f ...

  6. MySQL中Left Join和Right Join的理解

    虽然之前一直见过两个Join,对于其具体的含义也在参考书上读过,但是一直没有记住.现在换一种方式进行学习,改为实验方式理解. Left Join 测试表: 表结构很简单,test包括两个int字段,t ...

  7. intellij idea 2017和Jprofiler 10的集成 报错问题

    本来想用Jprofiler来分析一下自己写的Java项目,以提高代码执行效率和自己的编码能力.结果,官网和网上很多帖子都写了点出session->IDE integrations->选择i ...

  8. SoapUI之cookie设置

    一.测试背景: 1)接口测试需要完成注册-->登录-->充值,使用soapui构建好测试用例.设置断言后,运行结果如下: 2)recharge接口运行失败,继续查看该接口具体发送的请求及返 ...

  9. SpringBoot面试题及答案整理

    1. Spring 和 SpringBoot 有什么不同? Spring 框架提供多种特性使得 web 应用开发变得更简便,包括依赖注入.数据绑定.切面编程.数据存取等等. 随着时间推移,Spring ...

  10. 从CM刷机过程和原理分析Android系统结构

    前面101篇文章都是分析Android系统源代码,似乎不够接地气. 假设能让Android系统源代码在真实设备上跑跑看效果,那该多好.这不就是传说中的刷ROM吗?刷ROM这个话题是老罗曾经一直避免谈的 ...