求助:JAR包中的XML文件应该怎么读取。

求助:JAR包中的XML文件应该怎么读取。,第1张

你没有说清楚。是另一个工程中的代码访问jar中的xml文件,还是jar本身的代码访问xml文件。

如果是前者应该是没有办法的。

如果是后者。

BufferedReader br = new BufferedReader(new InputStreamReader(

((YourClass.this.getClass().getResourceAsStream("1.xml")))))

String s

while ((s = br.readLine()) != null)

System.out.println(s)

先看代码目录结构:

src/weather/

QueryWeather.java

weather.xml

程序里面可以直接读取到weather.xml文件,代码如下:

private static String getXmlContent()throws IOException {

FileReader f = new FileReader("src/weather/weather.xml")

BufferedReader fb = new BufferedReader(f)

StringBuffer sb = new StringBuffer("")

String s = ""

while((s = fb.readLine()) != null) {

sb = sb.append(s)}return sb.toString()}但是一旦把这个class文件和xml文件打成jar包再运行,对不起,报错,QueryWeather.class字节码根本找不到weather.xml

在看打成jar包的结构:META-INFMANIFEST.MFweatherQueryWeather.class

weather.xml

用下面的方法就可以找到weather.xml

private static String getXmlContent()throws IOException {

Reader f = new InputStreamReader(QueryWeather.class.getClass().getResourceAsStream("/weather/weather.xml"))

BufferedReader fb = new BufferedReader(f)

StringBuffer sb = new StringBuffer("")

String s = ""

您好,读取jar包内配置文件

InputStream in = this.getClass().getClassLoader().getResourceAsStream("/configfilename.properties")

读取jar包外配置文件:

String filePath = System.getProperty("user.dir") + "/conf/configfilename.properties"

InputStream in = new BufferedInputStream(new FileInputStream(filePath))

另外,如果app中使用到log4j.properties文件,默认的存放路径是src/log4j.properties,同上面一样,我想把log4j.properties放在其他目录中,这样一来,在修改log4j配置文件的时候无需重新打jar包。

在main函数第一行添加如下代码:

PropertyConfigurator.configure(System.getProperty("user.dir") + "/conf/log4j.properties")


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8123519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存