运行.jar

时间:2017-08-02 08:20:26

标签: java eclipse jar

我在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 / development environmente和jar / production environment)?

谢谢

1 个答案:

答案 0 :(得分:2)

您可以将外部src目录添加到JAR清单中的Class-Path条目。这将使src目录可以访问getResource()

我不知道它在运行时如何改变该目录的内容 - 从未尝试过。

<强> FYI : Eclipse中的读取文件“偶然”起作用。如果您运行应用程序,Eclipse不会构建整个JAR并使用它。它只将java文件编译为.class文件并使用它们。整个应用程序仍然在文件系统上作为JAR文件中的普通目录和文件,这就是从文件读取工作的原因。

它不适用于JAR文件(和内部资源),因为您无法直接从JAR(zip)存档中读取文件。如果您以爆炸形式交付应用程序,它将适用于客户端以及它在Eclipse中工作(并且没有其他目录)。