关于jar包中配置文件相互引用的问题,高手进~~

qingyuan18 2008-05-30 12:05:15
我将配置文件也打进在jar包中,其中有两个配置文件存在相互应用关系:
A配置文件中有<xs:include schemaLocation="./B.xsd"/> 引用B配置文件
B配置文件和A配置文件在同一目录下

在程序中通过this.getClass().getClassLoader().getResource("conf/A.xsd");可以成功访问到A配置文件,但是B配置文件无论如何都访问不到了


各位高人有遇到这种情况么?该如何解决呐?
...全文
250 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
长天一色 2008-05-30
  • 打赏
  • 举报
回复
试试将A.xsd文件改成C.xsd 看看使用 this.getClass().getClassLoader().getResource("conf/C.xsd"); 或 this.getClass().getClassLoader().getResource("conf/A.xsd");哪个能成功引用基本就知道原因.
qingyuan18 2008-05-30
  • 打赏
  • 举报
回复
楼上的仁兄你们没清楚我的意思:
getClass().getResouce()方法是可以找到A配置文件的,我在程序中也是这么写的,但是A配置文件中include了B配置文件,我的程序只找A配置文件,是不会去管B文件的,现在的问题是发现不打包时找A文件时B文件成功Include了,但是一打包B就Include不了了
M_song 2008-05-30
  • 打赏
  • 举报
回复
����jar��û�й�ϵ,�ص��Ų�Ϊʲôa������b!
长天一色 2008-05-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qingyuan18 的回复:]
楼上的仁兄你们没清楚我的意思:
getClass().getResouce()方法是可以找到A配置文件的,我在程序中也是这么写的,但是A配置文件中include了B配置文件,我的程序只找A配置文件,是不会去管B文件的,现在的问题是发现不打包时找A文件时B文件成功Include了,但是一打包B就Include不了了
[/Quote]
哦。。 原来这样,不过你写出来的程序不足以做判断,我就假设下。
假如程序找到A文件,但是找不到B文件,那么程序就是不能确定A文件的位置,因为如果知道A文件的位置就能找到B文件。所以,我觉得可以修改下,getClassLoader().getResouce()方法返回URL对象后,用URL.getPath()方法返回文件路径,再new File(),获取A文件的对象再处理。

上面是假设,如果不对,请楼主将处理A文件的程序贴出来看看。
mingr6370 2008-05-30
  • 打赏
  • 举报
回复
两个JAR包的目录是相同的?能这么理解吗

classload肯定不知道从那个目录找啊
dracularking 2008-05-30
  • 打赏
  • 举报
回复
多试几种引用方式呢

<xs:include schemaLocation="conf/B.xsd"/>

等等
marf_cn 2008-05-30
  • 打赏
  • 举报
回复
没有道理啊。ab是不是在一个目录,确定是不是在classpath下

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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