import java.io.InputStream
import java.io.InputStreamReader
import java.util.jar.JarEntry
import java.util.jar.JarFile
public class ReadOutJarFile {
public static void main(String[] args) throws Exception {
String jarName="C://test.jar"//Jar包所在的位置
String fileName="com/111.txt"//文件在jar包里的路径
JarFile jarFile = new JarFile(jarName)//读入jar文件
在src目录下建议一个文件夹,专门存放配置文件,项目编译后,直接用jar命令打包即可。如有疑问,可远程协助解决。
有问题欢迎提问,满意请采纳,谢谢!
先看代码目录结构:\x0d\x0asrc/weather/\x0d\x0aQueryWeather.java\x0d\x0aweather.xml\x0d\x0a程序里面可以直接读取到weather.xml文件,代码如下:\x0d\x0aprivate static String getXmlContent()throws IOException {\x0d\x0aFileReader f = new FileReader("src/weather/weather.xml")\x0d\x0aBufferedReader fb = new BufferedReader(f)\x0d\x0aStringBuffer sb = new StringBuffer("")\x0d\x0aString s = ""\x0d\x0awhile((s = fb.readLine()) != null) {\x0d\x0asb = sb.append(s)}return sb.toString()}但是一旦把这个class文件和xml文件打成jar包再运行,对不起,报错,QueryWeather.class字节码根本找不到weather.xml\x0d\x0a在看打成jar包的结构:META-INFMANIFEST.MFweatherQueryWeather.class\x0d\x0aweather.xml\x0d\x0a用下面的方法就可以找到weather.xml\x0d\x0aprivate static String getXmlContent()throws IOException {\x0d\x0aReader f = new InputStreamReader(QueryWeather.class.getClass().getResourceAsStream("/weather/weather.xml"))\x0d\x0aBufferedReader fb = new BufferedReader(f)\x0d\x0aStringBuffer sb = new StringBuffer("")\x0d\x0aString s = ""欢迎分享,转载请注明来源:内存溢出
评论列表(0条)