有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

放置属性文件的位置,以便java命令在类路径中看到它

我们有一个需要读取属性文件的jar。属性文件需要在不重建应用程序的情况下进行编辑,因此将其从生成中排除

为了让应用程序看到属性文件,它被放置在java类路径上的一个文件夹中。用于运行应用程序的Windows命令行格式如下:

java -cp application.jar;.\lib_folder\*; com.company.Start

Java正确地拾取lib_folder中的所有jar文件。属性文件放在同一文件夹中,但应用程序无法看到它,并引发FileNotFoundException。我们是不是做错了什么

非常感谢


共 (3) 个答案

  1. # 1 楼答案

    如果您使用ResourceBundle读取属性文件,那么只需添加包含属性的顶级项目。属性文件到类路径

  2. # 2 楼答案

    类解析从cp中给定的路径开始。如果您提供。\lib_文件夹位于类路径中,不带星号,并且属性文件位于该文件夹中,然后将拾取它。当前属性文件本身在类路径中

  3. # 3 楼答案

    it is placed it a folder which is on the java classpath

    您的类路径只包含jar,符号.\lib_folder\*表示文件夹中的每个jar,而不是文件夹本身

    The properties file is placed in the same folder, but the application cannot see it

    文件夹本身需要添加,但是我怀疑您不应该将文件添加到“lib”目录,您应该使用不同的目录,如“config”

    and is throwing a FileNotFoundException.

    当您尝试获取资源时,您得到的null不是此异常。试试下面的方法

    InputStream is = getClass().getClassLoader().getResourceAsStream("resource.properties");
    

    如果找不到文件,则返回null

    Are we doing anything obviously wrong?

    FileInputStream查找直接文件,它不使用类路径