我有一个带有图形编辑器的项目(如GMF技术),我需要读取放置在项目类路径上的.Jar库中的文件。
VectorSync_1.0.0.201403121100.jar的结构如下:
VectorSync:
我导入.Jar文件的项目的.classpath是:
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.scala-ide.sdt.launching.SCALA_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="/home/jperezmedina/git/arom/arom-core/target/scala-2.9.0/aromslave_2.9.0-0.1.jar"/>
<classpathentry kind="lib" path="/home/jperezmedina/runtime-EclipseApplication/DefaultProject.arom/lib/VectorSync_1.0.0.201403121100.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
我使用此方法尝试访问.xml文件:
JarFile file = new JarFile("VectorSync_1.0.0.201403121100.jar");
BufferedReader input1 =
new BufferedReader(new InputStreamReader(file.getClass().
getClassLoader().getResourceAsStream("model/VectorSync.xml")));
但所使用的方法始终返回null
。
你能帮我解决这个问题吗?
谢谢
答案 0 :(得分:0)
你尝试过这种方法吗?
Thread.currentThread().getContextClassLoader().getResourceAsStream(filename);
答案 1 :(得分:0)
如果您查看JarFile
,您会注意到它为您提供api
JarFile file = new JarFile("VectorSync_1.0.0.201403121100.jar");
ZipEntry entry = file.getEntry("model/VectorSync.xml");
BufferedReader input1 = new BufferedReader(
new InputStreamReader(file.getInputStream(entry)));