文档章节

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

小叮当_加V
 小叮当_加V
发布于 2015/10/19 16:26
字数 417
阅读 11
收藏 0

在J2SE中,或者不发布的webapp下测试:

File file=new File("./text.xml")  发现读取src下面的text.xml文件

但是当我们把webapp发不到tomcat下面,你会发现他找不到路径了,他会到tomcat bin文件下面去找。

其实webapp发布的时候,会把源文件的class放到WEB-INF/classses下面,会把工程中WEB-INF下面的东西放到发布的WEB-INF下面,如jsp,lib等等。

所以程序要读取配置文件,比如我偶们把配置文件放到conf下面,发现发布后,WEB-INF/classses没有这个配置文件,原因是这个conf文件只是普通文件夹,必须要和src一样是源文件夹才行。所以配置文件有三种放的方法:

1 直接放到src下面

2  建立源的文件夹,如conf,放到下面,其实最后编译都会放到WEB-INF/classses下面,这样放只是为了和普通的src区分

3 放到工程WEB-INF目录下面

比如我在src下面放了一个mapping.xml,读取他这样;比如这段带吗在Test类里面

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

File file=new File(path);

这样就搞定了。

这是别人的代码:

package   org.cheng.file; 
import   java.io.File; 
public   class   FileTest{ 
     public   static   void   main(String[]args) throws   Exception{ 
         System.out.println(Thread.currentThread().getContextClassLoader().getResource( "" )); 
         System.out.println(FileTest. class .getClassLoader().getResource( "" )); 
         System.out.println(ClassLoader.getSystemResource( "" )); 
         System.out.println(FileTest. class .getResource( "" )); 
         System.out.println(FileTest. class .getResource( "/" )); //Class文件所在路径 
         System.out.println(newFile( "/" ).getAbsolutePath()); 
         System.out.println(System.getProperty( "user.dir" )); 
    

}

参考博客,这两个很有用,感谢他们:

http://my.oschina.net/xianggao/blog/85172#OSC_h4_8

http://www.bubuko.com/infodetail-776607.html



© 著作权归作者所有

共有 人打赏支持
小叮当_加V
粉丝 4
博文 98
码字总数 19908
作品 0
东城
私信 提问

暂无文章

为什么要学习Python?这10个理由足够了!

摘要: 看完这十个理由,我决定买本python从入门到精通! 如果你定期关注现今的科技发展,那么你可能想知道我为什么要写这篇文章告诉人们学习Python?因为几年前我提倡Java而不是Python。 在...

阿里云官方博客
25分钟前
4
0
spring服务方式配置okhttp3

问题 如果把OKhttp以Spring服务方式配置,就解决了从配置中心运行时刷新配置参数的问题。 OkHttpConfig.java package com.zyl.config;import okhttp3.OkHttpClient;import org.springfra...

亚林瓜子
25分钟前
2
0
8张图让你一步步看清 async/await 和 promise 的执行顺序

**摘要:**面试必问 原文:8张图帮你一步步看清 async/await 和 promise 的执行顺序 作者:ziwei3749 Fundebug经授权转载,版权归原作者所有。 为什么写这篇文章? 说实话,关于js的异步执行顺...

Fundebug
26分钟前
1
0
Linux 命令菜单

#!/bin/bash #menu.sh menu(){ source ~/.bashrc echo "=================================" echo "Please enter your choise:" echo "(0) Kill all java" echo "(1) Start all tomcat" echo......

mellen
31分钟前
3
0
原来云数据库也是有思想的...

本文由一刻talks发表 邵宗文,腾讯云数据库专家副总监。十余年数据库从业经验,2009年加入腾讯,曾负责腾讯网,新闻客户端,快报,视频,财经,体育等数据库平台部署、规划及运维支持工作。本...

腾讯云加社区
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部