想象力网站建设公司360doc 网站怎么做

张小明 2026/3/2 18:17:14
想象力网站建设公司,360doc 网站怎么做,推广普通话奋进新征程手抄报,中国建设网官方网站e路护航springboot中File默认路径1. 背景在Springboot项目开发中,针对文件解析类业务,以及文件生成类业务,正对默认的文件路径比较容易混淆,这里通过代码示例,记录每一种方式对应的默认路径.方便以后开发中快速查询.项目信息如下:项目目录: D:\projects\javaprj项目名称: springbootte…springboot中File默认路径1. 背景在Springboot项目开发中,针对文件解析类业务,以及文件生成类业务,正对默认的文件路径比较容易混淆,这里通过代码示例,记录每一种方式对应的默认路径.方便以后开发中快速查询.项目信息如下:项目目录: D:\projects\javaprj项目名称: springboottestPOM文件路径: D:\projects\javaprj\springboottest\pom.xml需要依次测试一下几种情况参数为 参数为 .参数为 ./参数为 ../参数为 /2. 获取文件(资源)几种方式3. 通过File类获取文件默认路径File通过File(String pathname)构造函数传递具体的路径信息,得到文件默认路径.getCanonicalPath是获取对应串的真实路径,路径上会去掉路径相对表示../.测试代码如下:// 小游戏 地心侠士 公众号:小满小慢public static void filePath() throws IOException {System.out.println(小游戏 地心侠士 File类默认路径);File file new File();System.out.println(File \\ 路径: file.getCanonicalPath());file new File(.);System.out.println(File \.\ 路径: file.getCanonicalPath());file new File(./);System.out.println(File \./\ 路径: file.getCanonicalPath());file new File(../);System.out.println(File \../\路径: file.getCanonicalPath());file new File(/);System.out.println(File \/\ 路径: file.getCanonicalPath());}以上代码对应输输出结果如下:小游戏 地心侠士 File类默认路径File 路径: D:\projects\javaprj\springboottestFile . 路径: D:\projects\javaprj\springboottestFile ./ 路径: D:\projects\javaprj\springboottestFile ../路径: D:\projects\javaprjFile / 路径: D:\打包把springboottest-0.0.1-SNAPSHOT.jar放在D:\,jdk所在的目录:C:\Program Files\Java\jdk17.0.8\bin,切换到jdk所在的目录执行如下命令:java -jar d:\springboottest-0.0.1-SNAPSHOT.jar,得到的输出结果如下:小游戏 地心侠士 File类默认路径File 路径: C:\Program Files\Java\jdk17.0.8\binFile . 路径: C:\Program Files\Java\jdk17.0.8\binFile ./ 路径: C:\Program Files\Java\jdk17.0.8\binFile ../路径: C:\Program Files\Java\jdk17.0.8File / 路径: C:\切换到jar所在目录执行如下命令:C:\Program Files\Java\jdk17.0.8\bin\java.exe -jar springboottest-0.0.1-SNAPSHOT.jar得到的输出结果如下:小游戏 地心侠士 File类默认路径File 路径: D:\File . 路径: D:\File ./ 路径: D:\File ../路径: D:\File / 路径: D:\从以上场景中,可以知道在调用File(String pathname)构造函数时,得到如下结论参数 ,.,./都指向相同的目录.支持相对目录写法, 如../会向上一级目录.参数/,表示获取工作目录的跟目录默认目录和jar包所在的目录并没有关系.只和工作目录有关系可以通过以下代码获取到工作目录:--小游戏 地心侠士String workingDir System.getProperty(user.dir);System.out.println(当前工作目录为: workingDir);如果想要输出目录始终一直,可以在启动时指定工作目录,可以使用-Duser.dir修改,如启动命令调整为:java -Duser.dirD:\ -jar d:\springboottest-0.0.1-SNAPSHOT.jar此时,Filel类的默认目录一定是为D:\4. 通过Class类获取文件默认路径使用class的getResource()方法获取文件默认路径.为了说明问题,特地使用处于不同包的两个类测试com.RootClasscom.herbert.springboottest.SpringboottestApplication测试代码如下:public static void classgetResource() {System.out.println(小游戏 地心侠士 class.getResource 默认路径);URL resource SpringboottestApplication.class.getResource();System.out.println(class.getResource \\ 路径: resource.getPath());resource SpringboottestApplication.class.getResource(.);System.out.println(class.getResource \.\ 路径: resource.getPath());resource SpringboottestApplication.class.getResource(./);System.out.println(class.getResource \./\路径: resource.getPath());resource SpringboottestApplication.class.getResource(../);System.out.println(class.getResource \../\路径: resource.getPath());resource SpringboottestApplication.class.getResource(/);System.out.println(class.getResource \/\ 路径: resource.getPath());}以上代码对应的输出结果如下:小游戏 地心侠士 class.getResource 默认路径class.getResource 路径: /D:/projects/javaprj/springboottest/target/classes/com/herbert/springboottest/class.getResource . 路径: /D:/projects/javaprj/springboottest/target/classes/com/herbert/springboottest/class.getResource ./路径: /D:/projects/javaprj/springboottest/target/classes/com/herbert/springboottest/class.getResource ../路径: /D:/projects/javaprj/springboottest/target/classes/com/herbert/class.getResource / 路径: /D:/projects/javaprj/springboottest/target/classes/RootClass.getResource 路径: /D:/projects/javaprj/springboottest/target/classes/com/打包成jar后执行,不管工作目录如何,class.getResource()方法得到的目录都是jar包所在目录.小游戏 地心侠士 class.getResource 默认路径class.getResource 路径: nested:/D:/springboottest-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/com/herbert/springboottest/class.getResource . 路径: nested:/D:/springboottest-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/com/herbert/springboottest/class.getResource ./路径: nested:/D:/springboottest-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/com/herbert/springboottest/class.getResource ../路径: nested:/D:/springboottest-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/com/herbert/class.getResource / 路径: nested:/D:/springboottest-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/RootClass.getResource 路径: nested:/D:/springboottest-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/com/从测试结果可以知道 ,.,. 都指向当前class所在的目录.支持相对目录写法, 如../会向上一级目录./指向classes目录或者class所在jar的根目录.和工作目录没有关系.和class在哪里有关系5. 通过ClassLoader类获取文件默认路径使用classloader的getResource()方法获取文件默认路径测试代码如下:public static void classLoaderGetResource(ClassLoader classLoader) {System.out.println(小游戏 地心侠士 classLoader.getResource 默认路径);System.out.println(classLoader信息: classLoader.getName() classLoader.getClass().getSimpleName());URL resource classLoader.getResource(application.properties);System.out.println(classLoader.getResource \\ 路径: resource.getPath());resource classLoader.getResource(.);System.out.println(classLoader.getResource \.\ 路径: resource.getPath());resource classLoader.getResource(./);System.out.println(classLoader.getResource \./\ 路径: resource.getPath());resource classLoader.getResource(com);System.out.println(classLoader.getResource \com\ 路径: resource.getPath());// 不支持上级目录resource classLoader.getResource(../);if (resource ! null) {System.out.println(classLoader.getResource \../\ 路径: resource.getPath());} else {System.out.println(classLoader.getResource \../\ 路径: 不支持 );}// 不支持绝对目录resource classLoader.getResource(/);System.out.println(classLoader.getResource \/\ 路径: 不支持);}AppClassLoader 执行情况测试代码: classLoaderGetResource(ClassLoader.getSystemClassLoader()) 在IDE中输输出结果如下:小游戏 地心侠士 classLoader.getResource 默认路径classLoader信息: app AppClassLoaderclassLoader.getResource 路径: /D:/projects/javaprj/springboottest/target/classes/application.propertiesclassLoader.getResource . 路径: /D:/projects/javaprj/springboottest/target/classes/classLoader.getResource ./ 路径: /D:/projects/javaprj/springboottest/target/classes/classLoader.getResource com 路径: /D:/projects/javaprj/springboottest/target/classes/comclassLoader.getResource ../ 路径: 不支持classLoader.getResource / 路径: 不支持打包成jar后执行,直接获取不到resouce,直接报错,可能与我打包的fat包有关系.PlatformClassLoader 执行情况测试代码: classLoaderGetResource(ClassLoader.getPlatformClassLoader()) 在IDE中输输出结果如下:无论是IDE中,还是打包成jar执行,都获取不到对应resource.通过两类系统classloader的测试,总结如下classLoader.getResource 受类加载器影响明显,不建议直接使用class.getResource 相对于类所在路径,比较清晰6. 使用ResourceUtils获取资源Spring提供的工具类了 ResourceUtils 获取资源,测试代码如下public static void springResourceUtilsFilePath() throws IOException {System.out.println(小游戏 地心侠士 ResourceUtils类默认路径);File file ResourceUtils.getFile();System.out.println(ResourceUtils \\ 路径: file.getCanonicalPath());file ResourceUtils.getFile(.);System.out.println(ResourceUtils \.\ 路径: file.getCanonicalPath());file ResourceUtils.getFile(./);System.out.println(ResourceUtils \./\ 路径: file.getCanonicalPath());file ResourceUtils.getFile(../);System.out.println(ResourceUtils \../\路径: file.getCanonicalPath());file ResourceUtils.getFile(/);System.out.println(ResourceUtils \/\ 路径: file.getCanonicalPath());file ResourceUtils.getFile(classpath:application.properties);System.out.println(ResourceUtils classpath: 路径: file.getCanonicalPath());file ResourceUtils.getFile(file:application.properties);System.out.println(ResourceUtils file: 路径: file.getCanonicalPath());}IDE运行后输出结果如下小游戏 地心侠士 ResourceUtils类默认路径ResourceUtils 路径: D:\projects\javaprj\springboottestResourceUtils . 路径: D:\projects\javaprj\springboottestResourceUtils ./ 路径: D:\projects\javaprj\springboottestResourceUtils ../路径: D:\projects\javaprjResourceUtils / 路径: D:\ResourceUtils classpath: 路径: D:\projects\javaprj\springboottest\target\classes\application.propertiesResourceUtils file: 路径: D:\projects\javaprj\springboottest\application.properties打包把springboottest-0.0.1-SNAPSHOT.jar放在D:\,jdk所在的目录:C:\Program Files\Java\jdk17.0.8\bin,切换到jdk所在的目录执行如下命令:java -jar d:\springboottest-0.0.1-SNAPSHOT.jar,得到的输出结果如下:小游戏 地心侠士 ResourceUtils类默认路径ResourceUtils 路径: C:\Program Files\Java\jdk17.0.8\binResourceUtils . 路径: C:\Program Files\Java\jdk17.0.8\binResourceUtils ./ 路径: C:\Program Files\Java\jdk17.0.8\binResourceUtils ../路径: C:\Program Files\Java\jdk17.0.8ResourceUtils / 路径: C:\ResourceUtils classpath: 路径: class path resource [application.properties] cannot be resolved to absolute file path because it does not reside in the file system: jar:nested:/D:/springboottest-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/application.propertiesResourceUtils file: 路径: C:\Program Files\Java\jdk17.0.8\bin\application.properties切换到jar所在目录执行如下命令:C:\Program Files\Java\jdk17.0.8\bin\java.exe -jar springboottest-0.0.1-SNAPSHOT.jar得到的输出结果如下:小游戏 地心侠士 ResourceUtils类默认路径ResourceUtils 路径: D:\ResourceUtils . 路径: D:\ResourceUtils ./ 路径: D:\ResourceUtils ../路径: D:\ResourceUtils / 路径: D:\ResourceUtils classpath: 路径: class path resource [application.properties] cannot be resolved to absolute file path because it does not reside in the file system: jar:nested:/D:/springboottest-0.0.1-SNAPSHOT.jar/!BOOT-INF/classes/!/application.propertiesResourceUtils file: 路径: D:\application.properties通过ResourceUtils测试,总结如下:不同场景下运行程序得到到的默认路径同File保持一致特性.同工作目录强相关.使用Spring的classpath前缀获取文件时,默认从运行的jar包查找使用Spring的file前缀获取文件时,默认从当前根目录查找7. 总结ResourceUtils 和 File 类使用路径获取资源时,是以工作目录为参考class.getResource 方法使用路径参数获取资源时,是以这个类的位置为参考classLoader.getResource正常情况下以classpth目录为基准,不支持路径参数不支持绝对路径.并且java9使用模块化机制,影响很大不管那种方式,.,./都表示当前目录
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

绍兴模板建站公司网站培训网站建设

项目里有获取ip地址归属地的需求,查了一下目前使用比较多的是纯真提供的IP地址库,特来记录一下。纯真(CZ88.NET)提供社区版IP地址库,只要获得纯真的授权就能免费使用,并不断获取后续更新的版本。如果有需要免费版IP库的朋友可以前…

张小明 2026/1/19 3:44:24 网站建设

外包网站价格网站推广公司排行榜

AI视频创作利器!FaceFusion镜像一键部署,极速体验人脸替换黑科技在短视频内容爆炸式增长的今天,创作者们对“视觉冲击力”的追求从未停止。如何快速制作出令人眼前一亮的换脸视频?是继续忍受 DeepFaceLab 复杂的环境配置、漫长的模…

张小明 2026/1/19 3:43:54 网站建设

电子商务网站的建设论文wordpress设置自动保存

还在为搜索文件后必须打开程序才能查看内容而烦恼吗?😩 每次在Everything或系统搜索中找到目标文件,却要等待程序启动才能确认内容,这种效率低下的体验真的让人抓狂!今天,我将为你揭秘如何通过QuickLook实现…

张小明 2026/1/19 3:43:23 网站建设

苏州网站建设如何选择seo站长之家

第一章:Dify工作流版本回滚的核心概念在 Dify 的工作流管理中,版本回滚是一项关键功能,允许开发者在部署异常或配置错误时快速恢复到已知稳定的系统状态。该机制依赖于完整的工作流版本快照存储,确保每次变更均可追溯、可还原。版…

张小明 2026/3/2 17:18:36 网站建设

玉树电子商务网站建设哪家好服务器调用wordpress

在日常办公和文件处理中,你是否经常遇到OFD格式文档无法直接编辑、打印或分享的困扰?OFD作为我国自主版式文档标准,虽然具有很好的安全性和规范性,但在兼容性方面确实存在诸多不便。Ofd2Pdf正是为解决这一痛点而生的专业工具&…

张小明 2026/1/19 3:41:50 网站建设

广东深圳网站建设服务网站修改报价

终极FreeMarker模板调试工具:3分钟解决模板语法问题 【免费下载链接】freemarker-online-tester Apache Freemarker Online Tester: 是一个用于在线测试 Apache Freemarker 模板的 Web 应用程序。它可以帮助开发者快速测试 Freemarker 模板的语法和功能。适合有 Fre…

张小明 2026/1/19 3:41:19 网站建设