java 路径的问题
在项目开发中会碰到各种各样的获取项目路径的一些问题:
1:java项目:
以获取 类路径下的mess.properties 为例来说明;
文件在项目中的位置:
src/bz/beppe/demo/resource/mess.properties
1) 通过新建File文件获取其文件所在的路径:
File f=new File("bin/resource/mess.properties");
InputStream in=new FileInputStream(f);
这里获取到的路径地址是:
D:\DMCworkspace\JavaSE\bin\resource\mess.properties
bin/ 下的地址表示获取项目编译后在bin目录下面的路径
2)通过 "." 的方式获取项目的当前所在的路径:
File f3=new File(".");
System.out.println(f3.getCanonicalPath());
这里获取到的路径是:
D:\DMCworkspace\JavaSE 即项目所在的路径
3)通过类加载器的方式获取:查找指定资源的url 这里指定资源需要以‘/’开头
URL resource = this.getClass().getResource("/resource/mess.properties");
System.out.println(resource.getFile());
这里获取到的路径是:/D:/DMCworkspace/JavaSE/bin/resource/mess.properties
这里的路径不是以盘符开始的,/D:/DMCworkspace/JavaSE 指定的是java project所在位置,和相应的盘符没有关系;
2:javaweb项目中的获取当前应用的路径:
根目录所对应的绝对路径:request.getServletPath();
文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");
3:有一种很特殊的情况,就是获取jar中的文件的路径:
当一个项目你用 new File("xxx")的方式获取文件的路径是没问题的,而当你将该项目打成jar包后放入其他项目中则会报错:FileNotFound 的错误
这是因为这种方式获取到路劲是与盘符和项目所在的目录紧密相关的,在jar包是一个文件没有其中没有java 项目的目录概念,所以获取到的是错误的路劲;
这时候如果要获取jar中的路径则可以通过类加载器的方式来获取其中的路径从而加载文件;
这里以读取jar包中的mess.properties文件为例;
InputStream is = this.getClass().getResourceAsStream("/mess.properties");
java 路径的问题的更多相关文章
- linux上java路径设置
linux上java路径设置 标签: javalinuxpath 2012-04-30 22:14 1843人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 往/e ...
- java路径中的空格问题(转)
java路径中的空格问题 1. URLTest.class.getResource("/").getPath(); URLTest.class.getResource(" ...
- Java路径问题最终解决方案—可定位所有资源的相对路径寻址
1.在Java项目中,应该通过绝对路径访问文件,以下为访问的常用方法: 第一种方法:类名.class.getResource("/").getPath()+文件名 第二种方法:Th ...
- Java路径问题终于解决方式—可定位全部资源的相对路径寻址
1.在Java项目中,应该通过绝对路径訪问文件.下面为訪问的经常用法: 第一种方法:类名.class.getResource("/").getPath()+文件名称 另外一种方法: ...
- java 路径问题
java路径存在两种写法"/"和"\\" String path="D:\\1.txt"; String path1="D:/1. ...
- ubuntu18.04因java路径原因启动jenkins失败
我的云服务器ubuntu18.04上本来装了jenkins,今天安装完tomcat后,将原有的openjdk卸载了,安装了jdk8u192, 此时浏览器访问8080端口显示的就是tomcat安装成功的 ...
- java路径问题
使用了java这么久一直对java获取路径存在困惑,将一些常用的获取路径方式记录如下: val property = System.getProperty("user.dir")) ...
- Java 路径
http://swiftlet.net/archives/713 Java中不存在标准的相对路径,各种相对路径取资源的方式都是基于某种规则转化为绝对路径.所以在Java中文件路径问题无非归结为一点:找 ...
- java路径问题总结
平时写程序的时候,很多时候提示文件找不到,而抛出了异常,现在整理如下[一 相对路径的获得] 说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得(不论是一般的java项目还是web项目) St ...
- Java路径操作具体解释
1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或文件夹在硬盘上真正的路径.(URL和物理路径)比如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://w ...
随机推荐
- MVVM中viewmodel的理解
网上有人写了这段话,我也有同感,特别是第一种用法,很重要,后一种用法,我觉得是把第一种用法加入controller中了. 第一种 “view model” 是 “model for the view” ...
- sql心跳
因为interactive_timeout决定的是交互连接的时间长短,而wait_timeout决定的是非交互连接的时间长短. 问:为什么需要设置interactive_timeout wait_t ...
- delphi 中如何处理“幽灵”、“熔断”?(转载)
原始连接:http://dannywind.nl/delphi/meltdown-spectre-and-delphi/ Meltdown, Spectre and Delphi Don’t pani ...
- Ajax复习
1.标准请求响应时浏览器的动作(同步操作) 1.1 浏览器请求什么资源,跟随显示什么资源 2.ajax:异步请求: 2.1 局部刷新,通过异步请求,请求到服务器资源数据后,通过脚本修改页面中部分内容 ...
- 832. Flipping an Image
class Solution { public: vector<vector<int>> flipAndInvertImage(vector<vector<int& ...
- boost-断言
标准assert宏的原型声明在<assert.h>中,其作用是如果它的测试条件为假,则调用abort()终止程序执行,程序退出的时候会弹出一个错误提示框,并向控制台输出所在文件及行号.as ...
- VSCode 设置侧边栏字体大小;Visual Studio Code改变侧边栏大小
1.代码改写,进入默认安装的如下路径 C:\Users\Administrator\AppData\Local\Programs\Microsoft VS Code\resources\app\out ...
- vue的饿了么写作感受
1.在重复使用的组件中,要把重复使用组件的需要在数据的请求的地方设置为在富组件中,通过props船只到子组件,这样在重复调用次组件的时候既可以很好的避免组件的值的冲突 2.getData的使用,把所有 ...
- Perl语言入门
Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 "实用报表提取语言". Perl语法基础: (1)Perl程序由声 ...
- Matlab绘图添加直角坐标轴
绘制y=x^2,并添加直角坐标轴. clear;clc;close all %% 绘制方程 x = -10:0.01:10; figure; y = x.^2-30; plot(x,y,'k','li ...