我有一个基本的cmd程序,它调用一个带有main方法的Install类的jar。 Install类使用其资源文件夹中的java.util.logging.config.file。
private static void setupLogging() {
if (System.getProperty("java.util.logging.config.file") == null) {
final InputStream inputStream = Install.class.getResourceAsStream("/logging.properties");
try {
LogManager.getLogManager().readConfiguration(inputStream);
} catch (final IOException e) {
Logger.getAnonymousLogger().severe("Could not load default logging.properties file");
Logger.getAnonymousLogger().severe(e.getMessage());
}
}
}
此安装程序属于不同的项目,我不应该更改它。但是我想从我的磁盘中使用一个单独的logging.properties文件(最好是从我有cmd程序的同一个文件夹)。如何强制此安装程序使用我的logging.properties文件而不是资源文件夹中的默认文件?有没有办法可以强迫这个?
答案 0 :(得分:0)
你可以试试这个:
String yourFilePath = "./yourLogProperties.properties";
LogManager.getLogManager().readConfiguration(new FileInputStream(yourFilePath);
属性将从存储在执行应用程序的同一文件夹中的文件中加载。
<强>更新强>
我正在搜索如何通过命令行传递属性,并且有一个非常好的解释here。所以,在你的情况下,你需要这样的东西:
java -jar -Djava.util.logging.config.file="./yourLogProperties.properties" YourApp.jar
此外,您可以测试它是否可以进行简单的测试:
public class Tests {
public static void main(String[] args) {
System.out.println(System.getProperty("java.util.logging.config.file"));
}
}
从命令行运行此命令,您应该得到答案./yourLogProperties.properties