关于文件路径的问题

fingertiploneliness 2005-03-14 01:39:50
象配置log4j时候得log4j.properties文件,我放在eclipse当前j2ee工程的src根目录下,编译到web-inf/classes下面.如果在调试和部署的时候都能得到正确的引用?
在eclipse中
File f = new File("log4j.properties");
System.out.println(f.getAbsolutePath());
输出结果是:E:\eclipse\workspace\工程名字\log4j.properties !!!而不是当前类所在的位置,象log4j的这样的配置,不应该使用绝对路径吧?如何结局这样的问题??
...全文
147 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongcenphoenix 2005-03-15
  • 打赏
  • 举报
回复
mark
  • 打赏
  • 举报
回复
up
blackhost 2005-03-15
  • 打赏
  • 举报
回复
如果你是在Servlet中读取,则可以
InputStream log4j = InitServlet.class.getResourceAsStream(
"/log4j.properties");
Properties props = new Properties();
props.load(log4j);
org.apache.log4j.PropertyConfigurator.configure(props);
zcjl 2005-03-15
  • 打赏
  • 举报
回复
你用new File("filepath/filename");的方式
如果不能从该filepath中找到这个名为filename的文件
则会创建一个新的文件,等待被写入。

如果此时调用System.out.println(f.exists());
应该可以看到显示的是false,即该文件在硬盘中是不存在的

想要正确找到classes目录下的文件,可以用这样的方式:
URL fileURL = Thread.currentThread().getContextClassLoader().getResource("log4j.properties");
File file = new File(fileURL.getFile());
julian_zzx 2005-03-15
  • 打赏
  • 举报
回复
我猜楼主是直接写在main里面print出来的吧?
放在web application里面试试看?
@_@
xitianjile 2005-03-14
  • 打赏
  • 举报
回复
output=""??

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧