热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java类如何获取项目相对路径,java获取当前路径的几种方法

java类如何获取项目相对路径,java获取当前路径的几种方法00-10101.目录结构2。班级。getresource(字符串名称)3。班级。getclassloader()。g

  java类如何获取项目相对路径,java获取当前路径的几种方法

  00-1010 1.目录结构2。班级。getresource(字符串名称)3。班级。getclassloader()。getresource(字符串名)3.1区别3.2ClassLoader3.3关于URL前言:的一些知识

  在纯Java代码中,我们通常使用class.getResource(字符串名)或者class。getclassloader()。getresource (stringname)来获取文件的地址(当然不止这两种方法)。今天就来说说两种方法的异同。这里的纯Java代码不是Java web项目。

  

目录

 

  00-1010输入:可以接受相对路径(相对于本类)或绝对路径(根符号/表示项目的根,不表示硬盘的根)。

  Url对象该对象表示指向名称的资源。

  //获取相对路径。此时你得到这个类文件的同级目录System.out.println(相对路径:同级目录下的配置文件 main . class . get resource( demo . properties )));//获取的绝对路径相对于System.out.println(绝对路径:同一目录下的配置文件 main . class . get resource (/com/xing/demo/demo . properties ));System.out.println(相对路径:配置文件 main.class.getresource(./xing.properties ))在以前的目录中);System.out.println(绝对路径:根目录下的配置文件 main . class . get resource(/src . properties )));//当传入绝对路径(带“/”)时,getresource()方法将从项目的根目录解析路径地址返回:

  相对路径:配置文件file :/e :/idea work/path demo/out/production/path demo/com/xing/demo/demo . properties绝对路径:配置文件file 3360/e :/idea work/path demo/out/production/path demo/com/xing/demo . properties相对路径:配置文件file :/e 3360/idea work/path demo/out/production/path demo/com/xing/xing . properties绝对路径:配置文件file 3333333

  00-1010输出:只能接受相对路径,但此相对路径是相对于根目录的。

  输入:物体

  //src与根目录在同一级别,即System.out.println(相对路径:配置文件 main.class.getclassloader()。同级目录中的get resource( src . properties )));System.out.println(相对路径:配置文件 main.class.getclassloader()。相对于根目录的下一级目录中的get resource( com/com . properties ));System.out.println(相对路径:配置文件 main.class.getclassloader()。根目录旁边目录中的get resource( com/xing/xing . properties );返回:

  路径:同一个目录下的配置文件file :/e :/idea work/path demo/out/production/path demo/src . properties是相对的。

  路径:相对根目录的下一级目录下的配置文件>file:/E:/ideawork/pathdemo/out/production/pathdemo/com/com.properties相对路径:相对根目录的下下一级目录下的配置文件>file:/E:/ideawork/pathdemo/out/production/pathdemo/com/xing/xing.properties

  注意:

  

/**  * 下面两种有相同的作用  */System.out.println("==相对路径:同级目录下的配置文件>"+Main.class.getResource("demo.properties"));System.out.println("==相对路径:相对根目录的下下一级目录下的配置文件>"+Main.class.getClassLoader().getResource("com/xing/demo/demo.properties"));

输出:

 

  

==相对路径:同级目录下的配置文件>file:/E:/ideawork/pathdemo/out/production/pathdemo/com/xing/demo/demo.properties==相对路径:相对根目录的下下一级目录下的配置文件>file:/E:/ideawork/pathdemo/out/production/pathdemo/com/xing/demo/demo.properties

 

  

 

  h3>3.1区别两者的区别:

  其实我们看源码就知道class.getResource 其实就是用的 class.getClassLoader().getResource(String name)

  只不过是class.getResource 会通过 resolveName 这个方法把传入的路径都转换为符合 class.getClassLoader().getResource()的路径 然后让 getClassLoader 处理。

  

 

  

3.2ClassLoader

class.getClassLoader().getResource(String name) 使用的是 ClassLoader,而 ClassLoader 的获取是有很多方法的。

 

  获取 classLoader 的方法:

  Thread.currentThread().getContextClassLoader()ClassLoader.getSystemClassLoader().class.getClassLoader()

System.out.println(Thread.currentThread().getContextClassLoader().getResource("src.properties"));System.out.println(ClassLoader.getSystemClassLoader().getResource("src.properties"));

输出:

 

  

file:/E:/ideawork/pathdemo/out/production/pathdemo/src.propertiesfile:/E:/ideawork/pathdemo/out/production/pathdemo/src.properties

 

  

扩展一下: 获取项目的硬盘目录 直到项目名级别的目录

 

  

// 输出:E:sparkworkpathdemoSystem.out.println(System.getProperty("user.dir"));

 

  

3.3关于 URL 的一些知识

URL fileURL = Main.class.getResource("/src.properties");// 输出:file:/E:/sparkwork/pathdemo/out/production/pathdemo/src.propertiesSystem.out.println(fileURL.toURI());// 输出:/E:/sparkwork/pathdemo/out/production/pathdemo/src.propertiesSystem.out.println(fileURL.getPath());// 这两种方法都是可以的 File file = new File(fileURL.toURI());Filw file2 = new File(fileURL.getPath())

到此这篇关于Java项目中获取路径的绝对路径问题和相对路径问题的文章就介绍到这了,更多相关Java项目中获取文件地址内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

 



推荐阅读
  • 精讲代理设计模式
    代理设计模式为其他对象提供一种代理以控制对这个对象的访问。代理模式实现原理代理模式主要包含三个角色,即抽象主题角色(Subject)、委托类角色(被代理角色ÿ ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
author-avatar
Jolina
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有