java 板


LINE

想请问一下,为什麽在 eclipse 内部一样使用 Thread.currentThread().getClassLoader().getResourceAsStream() 载入资源, 自己写的程式可以成功载入档案F,但是程式里面所呼叫的函式库,却无法读取F呢? 状况是这样的,我在 eclipse 里面开一个专案练习使用 log4j 1.2, log4j 的函式库 .jar 放在专案 workspace 外面的资料夹里, 在专案的 buildpath 设定里面以 user lib 的方式载入。 Log4j官网上会教我们用 PropertyConfigurator.configure(String str) 载入设定档 在我练习的专案里面,写下上面这行程式码的类别 HelloLog4j.class 在package test.fileAppender里面,设定档 log4j.properties 与 HelloLog4j.class 在相同实体目录里面。 但是当我喂 "test/fileAppender/log4j.properties" 字串 StrA 或是 "./test/fileAppender/log4j.properties" 字串 StrB 给 PropertyConfigurator.configure() 方法,都会丢出 FileNotFoundException。 这我就觉得奇怪了,查询 Log4j 官网 FAQ (http://goo.gl/ijvqoe), 发现它是以 Thread.currentThread().getClassLoader().getResourceAsStream() 载入设定档的.... 但是自己实验後,发现如果自行在 HelloLog4j.class 调用以上载入档案的方法, 先建立 Property 类别的实例再丢给 PropertyConfigurator.configure(), 那麽不管载入档案的路径参数是 StrA 或 StrB ,都能正常读入 Log4j.properties, 但 Log4j 函式库却无法只靠路径字串就读取到设定档.... 为什麽一样使用 Thread.currentThread().getClassLoader().getResourceAsStream() 载入资源, 自己写的程式可以成功载入,但是程式里面所呼叫的函式库,却无法呢? 我翻找到 eclipse 的 FAQ (http://goo.gl/zk0ayd) 推测有可能是因为 eclipse 使用不同的 ClassLoader 载入专案的函式库, 以致於 classpath 不同,但我不知道自己想法对不对呢? 请问有人可以解惑一下吗? --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.76.91 此问题已解决,官网没改害我浪费两天怀疑自己是否观念有错 QQ 查看原始码发现 Log4j 的 PropertyConfigurator(String str) 根本就不是用 ClassLoader 载入档案的,而是使用 FileInputStream 读档, 它直接把 str 当成建构式的参数拿去建构 FileInputStream 的实例。 这个 str 必须是系统绝对路径才能正常读档,难怪在专案里面参数怎麽给都读不到, 我错怪 eclipse 了 QQ
1F:→ swpoker:挖~我都放在classpath底下~算有读到就好~XD 10/01 09:20
2F:推 gmoz:可以放相对路径阿@@ 你工作目录有设定吗 10/01 19:29
的确是可以设定工作目录让FileInputStream读到, 但重点是官网说明没讲清楚,欺骗我的感情。 明明实作是直接拿 str 建构 FileInputStream,讲的却是用 ClassLoader 载入 这样设定的方法就完全不同啊~ ※ 编辑: dream1124 来自: 118.168.95.2 (10/01 21:38)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP