读一条没有斜线的路径

时间:2017-06-01 07:53:53

标签: java file jar filepath

需要帮助理解类路径和文件路径。我们有一个第三方jar,他们需要引用commons-logging属性文件。已经通过以下方式指定了它。

String fileLocation="commons-logging.properties";

如果我将文件放在jar中,它可以正常工作,这是不允许的。有没有办法让jar引用jar外的文件。我无法改变任何代码。我试图寻找解决方案,但无法得到我想要的东西。

2 个答案:

答案 0 :(得分:0)

您需要将属性文件放在Java应用程序的类路径中。您已经通过将其添加到jar文件的根目录来完成此操作。

一种可能性是添加特定文件夹,例如配置,到您的类路径。然后应将属性文件放在该文件夹中。

另一种选择是将属性文件放入自己的jar文件中,并将其添加到应用程序类路径中。

但最后我更喜欢第一个选项,将文件添加到classpath中可用的文件夹中。

答案 1 :(得分:0)

一切都取决于jar尝试阅读此文件的方式。如果它试图通过ClassLoader将其作为资源打开,那么它应该在你的jar中,但如果像外部文件一样,那么把它放在外面并使用绝对路径进入该文件没有问题。

因此,只需检查此功能,如果您需要使用外部文件,则必须更改它并通过PathFile类打开此文件。