【发布时间】:2010-11-30 05:50:40
【问题描述】:
我有一个必须从文本文件中读取的应用程序(使用 FileInputStream)。文本文件位于相对于类文件的目录结构中(例如“../textdir/text.txt”)。当我正常运行它时(即在cp中指定包含.class文件的/bin文件夹)一切正常。但是,我不知何故需要将所有东西打包到一个 jar 中,而当我运行 jar 时,没有任何效果。错误类似于“FileNotFOund: MyJar.jar!/textdir/text.txt”。我在 jarfile 上运行了 jar -tvf,文本文件确实在里面。我对源代码有读但没有写权限。
除了试图解决我的问题(我认为有很多解决方法)之外,有人可以向我解释一下整个事情是如何工作的吗? jar 是如何搜索文件的?如果我想从命令提示符的当前工作目录而不是 jar 文件中的 .class 目录读取怎么办?另外,我最近在将非 jar 项目转换为 jar 时遇到了类似的加载资源问题,这是如何工作的?
【问题讨论】: