Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

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

github如何用可执行JAR文件更新Java运行时从文件读取的变量?

我正在为一个类开发discord机器人,我的token和github有问题。我正在尝试设置它,以便从配置中读取令牌。可以使用bot令牌更新的属性文件。然而,我的教授说,我应该设置它,这样我就有一个二进制可执行文件,可以从GitHub repo下载,用户只需提供自己的配置。属性文件位于指定的文件夹中,并按照指示进行操作。然而,我不明白/不知道如何编译一个依赖于运行时读取的文件值的可执行Java程序,而无需在每次配置完成后重新编译。属性文件已更改。现在,我将应用程序设置为JAR文件,我不知道如何让程序在不作为JAR共享的情况下下载给用户,但这意味着每次更改配置后都需要重新编译。属性文件。我不知所措,不确定自己是否完全理解JAR文件

编辑: 下面是我用来读取配置属性的代码

public class ReadConfig {
    String token = "";
    InputStream inputStream = null;
    // won't take string with file
    String file = "config.properties";
    Properties prop = new Properties();

    public String getToken() throws IOException{
        try{
            inputStream = getClass().getClassLoader().getResourceAsStream(file);
            prop.load(inputStream);
            token = prop.getProperty("token");
           // System.out.println("Token: " + token);
        } catch (Exception e){
            System.out.println("Exception: " + e);
        } finally {
            inputStream.close();
        }
        return token;
    }
}

我的配置。属性文件的结构如下:

# Config properties for the bot
token=TOKENHERE

我一直在使用Intellij中的Gradle ShadowJar plugin来创建可执行JAR。我试着将JAR移动到与config相同的文件夹中。属性文件,并更新配置。属性文件,但如果我用一个无效的令牌更新,它仍然会工作,直到我完全重建并重新编译JAR


共 (0) 个答案