我在 Eclipse 中有以下包结构:
MyProject
|___ src
|___ package1
|___ file.properties
我以两种不同的方式读取 file.properties:
prop.load(getClass().getResourceAsStream("file.properties"));
和
BufferedReader br = new BufferedReader(new FileReader("src/file.properties"))
file.properties 可以在runtine 中修改,所以当我提供jar 文件时,我建议用户在jar 文件的同一级别创建一个src 文件夹并将该文件放入其中。但是,在创建 jar 之前,我需要指定文件路径中的 src 文件夹:
prop.load(getClass().getResourceAsStream("src/file.properties"));
而 FileReader 调用仍然有效。
如何设置通用文件路径,能够在两种情况下(eclipse/开发环境和 jar/生产环境)工作?
谢谢
您可以将外部src
目录添加到Class-Path
JAR 清单中的条目。这将使src
用于目录访问getResource()
。
但是,我不知道它在运行时更改该目录的内容时会如何表现 - 从未尝试过。
仅供参考:偶然在 Eclipse 中读取文件“有效”。如果您运行您的应用程序,Eclipse 不会构建和使用整个 JAR。它只将 java 文件编译为.class
文件并使用它们。整个应用程序仍然在文件系统上作为普通目录和文件而不是 JAR 文件,这就是为什么从文件读取工作。
它不适用于 JAR 文件(和内部资源),因为您无法直接从 JAR(zip) 存档中读取文件。如果您以分解形式交付您的应用程序,那么它既适用于客户端,也适用于 Eclipse(无需附加目录)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句