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