java 读取project_java project 和 java web project 获取路径问题

java project中如何获得相对路径(编译后的目录是在/bin目录下)(一般图片 这些目录放在 项目目录下,与src同级)

在static方法中,用

String path = Test.class.getResource("").getPath();

在非static方法中,用

String path = this.getClass().getResource("").getPath();

String path = Test.class.getResource("").getPath();

都行!!

(因为在static方法中没有this关键字)

打印出来的结果如:

(以上获取到的   是该类  所在的相对路径)

====>>>可以使用 Runtime.getRuntime().exec("p.exe");  调用另一个现成的可执行程序或系统命令

Classpath   类路径 ========》》可以理解为项目编译后所在的路径,其实就是项目的路径

最准确讲,应该是Source Folder的路径(比如src目录)

用UploadImage.class.getResource("/")                    可以获取类路径classpath

注意:使用getResource的相对路径一定要以“/”开头,

输出:

另外,还要注意:如果java路径中含空格的话,这种方式获取的路径,其中的空格会被使用“%20”代替,

所以还需要使用String configPath=this.getClass().getResource("/").toString().replaceAll("%20", " ");进行解决!!!

总的来说,就是一下两种:

1、其实在 web 项目中,你也可以直接写成像这样的字符串“images/1.jpg”,,它也是会按相对路径来解析的,不过:

路径不以“/”开头;

脱离了IDE环境,这个写法就是错误的,也并非每个IDE都如此,但我见到的都是这样的。

(默认是该项目下,而非src下)

2、不同的是,使用getResource的相对路径一定要以“/”开头

【使用工程相对路径是靠不住的。     使用CLASSPATH路径是可靠的。

对于程序要读取的文件,尽可能放到CLASSPATH下,这样就能保证在开发和发布时候均正常读取。】

通过CLASSPATH读取包内文件::::

读取包内文件,使用的路径一定是相对的classpath路径,比如a,位于包内,此时可以创建读取a的字节流:

InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");

java web project中如何获得相对路径(编译后的目录是在/lib/classes目录下)

(一般图片这些目录 都放在  webRoot或webContent目录下)

直接写成“images/1.jpg”,就可以按

相对路径去解析了,默认是在

webRoot或webContent目录下

这样就可以显示图片了

但是不能在路径前面加上“/”,比如

这样是不行的。。

其实这些相对路径,都是按编译后的文件  的目录情况去找资源文件的,所以对编译后的文件的目录要清晰才行。

比如testtt的web项目,目录为:

编译后的目录为:

1、

很少用::(更多的是直接用  “images/1.jpg”的形式)

取得项目 所在的相对路径

输出:

2、

取得绝对路径:

使用HttpServletRequest 对象的getRealPath()方法

String path = request.getRealPath("");

输出:

(如果在加上“/”)

输出:

以上三个的结果都是一样的:

(ServletContext对象获得几种方式:

javax.servlet.http.HttpSession.getServletContext()

javax.servlet.jsp.PageContext.getServletContext()

javax.servlet.ServletConfig.getServletContext()

)

3、

在配置文件中配置所需要的路径

注意:

java project项目获取到的路径是该目录所在的路径

而java web project项目中获取到的路径是部署到服务器(如tomcat上)的路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值