【发布时间】:2012-11-08 20:24:38
【问题描述】:
我有一个使用第三方应用程序的 Java 项目。我将许可证文件(.lic 格式)存储在资源文件夹中。运行 Ant 脚本后,它将将该文件复制到 /lib/jar 目录中,因为它将项目汇总到 Jar 文件中以在服务器上使用。这是我在实时运行系统时需要访问文件的地方。这是文件夹结构的样子
MyProject
src
package
AccessingClass.java
resources
File.lic
lib
jar
File.lic (upon copy from Ant)
我不确定执行此操作的最佳方法,因此除了我一直在尝试的方法之外的任何建议都可能会有所帮助。第 3 方项目有一个类中的方法,如 License.setLicense(),它可以将字符串带到位置或文件的 InputStream。
我一直在尝试给它一个 InputStream,但在调用 getClass().getResourceAsStream() 时总是得到一个空值。这是我尝试过的所有内容:
- getClass().getResourceAsStream("../../../lib/jar/File.lic"); getClass().getResourceAsStream("/File.lic");
作为备份,我也尝试过(对于本地构建,我想我会尝试资源文件夹):
- getClass().getResourceAsStream("../../../resources/File.lic"); getClass().getResourceAsStream("/File.lic");
是否有更好的方法来执行此操作?或者有人能告诉我为什么我正在尝试失败?提前谢谢。
【问题讨论】:
-
JAR 里面的什么位置(例如,如果你解压它,文件位于?lib/jar?资源?在根?