【发布时间】:2013-06-19 01:11:36
【问题描述】:
我有一个 jar 文件,例如 archive1.jar,位于 /home/ext/libs 中。这有几个类,还有一个文本文件 (data.txt) 在 jar 的层次结构的根目录。这个 jar 的一个类(比如 Data.java)读取文件以启动一些内部数据结构。
现在,archive1.jar 作为另一个程序的库包含在内,称为 Parsing,它在完全不同的目录 /home/progs 中执行(archive1. jar在程序执行命令的classpath中指定)。
我面临的问题是,现在 Data.java 无法再理解 data.txt 的路径,因为它假定 data.txt 位于 /home/progs 中,而不是位于 archive1 中。 /home/ext/libs 中的 jar。
我的问题是我应该在 Data.java 内进行哪些更改,以便它了解 data.txt 在 archive1.jar 内?总之,如何让Data.java无论调用程序在哪里都能读取archive1.jar里面的data.txt。
注意:在线程Java资源作为文件中,情况有点不同,而且对于如何读取jar中的文件也没有答案。有人说这可能是不可能的。
【问题讨论】:
-
我们可以看看一些代码吗?
-
我查看了“Java 资源作为文件”线程,但并没有真正找到合适的答案。这是代码。在 Data.java 中,有 BufferedReader br = new BufferedReader(new FileReader("data.txt"));这个 Data.java 在archive1.jar 中,而archive1.jar 又在/home/ext/libs 中
-
当那个 Q(以及它的重复内容)告诉你该做什么而你根本没有做时,你怎么能找不到合适的答案?
-
stackoverflow.com/questions/574809/… 我想你要找的是getResourceAsStream。
-
java -cp archive1.jar;other.jar our.com.Main或者通过清单中的相对路径指定。
标签: java jar path embedded-resource readfile