gpt4 book ai didi

java - 使用Gradle将外部配置文件添加到jar

转载 作者:行者123 更新时间:2023-12-03 03:30:19 31 4
gpt4 key购买 nike

我有几个外部文件,我想添加到我的jar文件中并访问该类中的那些文件。我正在使用java -jar命令从命令行运行此jar文件。因此,当我使用绝对路径时,我可以访问文件内容,但是当我使用相对路径时,我会得到java.io.IOException: (No such file or directory)。我已经将我的两个文件都包括在src/main/resorces目录中。我已经尝试使用file.conf, /file.conf, ./file.conf,但没有一个起作用。还尝试在build.gradle中包含文件
from{
["file1.conf","file2.conf"]
}


知道如何使用文件的相对路径访问Java代码中的文件内容吗?

最佳答案

如果我对您的理解正确,则希望访问驻留在类路径中的文件。这些文件将与您的应用程序打包在一起,您会通过名称知道它们。如果这是正确的,并且您不是特别需要java.io.File,而是一种接受文件内容的方法,则建议这样做:

try (InputStream is = MyClass.class.getResourceAsStream("/file.conf")) {
// do something with the input stream
}

如果愿意,您还可以检索文件的 java.net.URL

简而言之,String属性的语法如下:
  • 如果属性以/开头,则从类路径的根解析名称。因此,例如,如果您运行java -jar hello.jar,则file.conf必须位于hello.jar的根目录
  • 如果属性不是以/开头,则相对于调用getResourceAsStream()方法的类来解析名称。

  • 查看 Class API了解更多信息。

    关于java - 使用Gradle将外部配置文件添加到jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38696331/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com