gpt4 book ai didi

java - 从具有属性的 jar 运行 java 应用程序

转载 作者:行者123 更新时间:2023-12-02 11:01:56 24 4
gpt4 key购买 nike

我有一个服务,我通过传递属性文件来运行 jar 文件

java -jar myjar server config.yml

为了停止每次通过命令行传递config.yml,我在主方法中配置了以下代码:

String configFile = args.length > 0
? args[0]
: ClassLoader.getSystemClassLoader().getResource("config.yml").toString();
new myApplication.run("server", configFile);

当我运行我的应用程序时

java -jar myjar

我收到以下异常。请帮我理解是什么原因。

Exception in thread "main" java.io.FileNotFoundException: File jar:file:/Users/abc/proj/target/analytics-1.0-SNAPSHOT.jar!/config.yml not found at io.dropwizard.configuration.FileConfigurationSourceProvider.open(FileConfigurationSourceProvider.java:14)

最佳答案

ClassLoader.getSystemClassLoader().getResource("config.yml").toString();

这将创建资源 URL 的字符串表示形式(位于 JAR 内)。 File 无法读取,因为文件系统无法访问它。您应该接受 InputStream 作为参数而不是文件名。

可能是这样的

InputStream configFile = args.length > 0
? new FileInputStream(args[0])
: ClassLoader.getSystemClassLoader().getResourceAsStream("config.yml");

稍后从该流中读取资源。

关于java - 从具有属性的 jar 运行 java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51269487/

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