需要帮助理解类路径和文件路径。我们有一个第三方jar,他们需要引用commons-logging属性文件。已经通过以下方式指定了它。
String fileLocation="commons-logging.properties";
如果我将文件放在jar中,它可以正常工作,这是不允许的。有没有办法让jar引用jar外的文件。我无法改变任何代码。我试图寻找解决方案,但无法得到我想要的东西。
答案 0 :(得分:0)
您需要将属性文件放在Java应用程序的类路径中。您已经通过将其添加到jar文件的根目录来完成此操作。
一种可能性是添加特定文件夹,例如配置,到您的类路径。然后应将属性文件放在该文件夹中。
另一种选择是将属性文件放入自己的jar文件中,并将其添加到应用程序类路径中。
但最后我更喜欢第一个选项,将文件添加到classpath中可用的文件夹中。
答案 1 :(得分:0)
一切都取决于jar
尝试阅读此文件的方式。如果它试图通过ClassLoader
将其作为资源打开,那么它应该在你的jar中,但如果像外部文件一样,那么把它放在外面并使用绝对路径进入该文件没有问题。
因此,只需检查此功能,如果您需要使用外部文件,则必须更改它并通过Path
或File
类打开此文件。