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) 个答案