当前位置: 首页 > 知识库问答 >
问题:

如何在运行Spring Boot Fat-jar时重写Java资源?

景国兴
2023-03-14

我创建了一个Spring Boot far-jar,其中包含一个log4j.xml配置文件作为资源。现在,当我运行fat-jar时,我试图以这种方式覆盖它

$ java -cp conf/ -jar target/myapp.jar

我在conf/文件夹中放入了一个新的log4j.xml。但是什么都没有,它继续使用JAR中的资源。

共有1个答案

易京
2023-03-14

如果您的目标只是定义自己的log4j.xml配置文件,这可能会有所帮助:

java -Dlogging.config='/path/to/log4j2.xml' -jar target/myapp.jar

(这在Java Spring Boot中如何更改log4j2.xml的默认位置中已经提到了?)

如果只想通过添加类路径来添加资源,可以参考https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-executable-jar-format.html#executable-jar-property-launcher-features whereloader.path:

 类似资料:
  • 问题内容: 我被要求构建一个Java系统,该系统在运行时能够加载新代码(扩展)。我的代码运行时如何重新加载jar文件?或如何加载新的jar? 显然,由于持续的正常运行时间很重要,因此,我想增加在此过程中重新加载现有类的功能(如果这样做不会使事情复杂化)。 我应该注意什么?(将其视为两个不同的问题-一个关于在运行时重新加载类,另一个关于添加新类)。 问题答案: 用现有数据重新加载现有类可能会破坏事情

  • 问题内容: 我处于一个非常奇怪的位置(从我的java-newbie的角度来看): 我使用Eclipse编写了一个“ java程序”(一些带有类的.java文件),从本质上(分批)读取文本 .csv文件,“求值”其内容,并将结果写到 _out.csv文本文件中。要找到输入文件,它使用“文件选择器”(从此处获取示例:http : //docs.oracle.com/javase/tutorial/ui

  • 问题内容: 在纯Java中,是否有可能在运行时以编程方式重写类的方法(甚至创建新方法)? 即使我在编译时 不 知道类,我 也 希望能够做到这一点。 我的意思是在运行时重写: 现在,这个调用… …将调用 Injector.myMethod() 而不是 Overrider.myMethod() 。 Injector.myMethod()是 静态的 ,因为在执行“魔术”之后,它是从不同的类实例(这是Ov

  • 问题内容: 使用JPA EntityManager和JPA Query对象,如何覆盖带有注释@OneToMany(fetch = FetchType.EAGER)的对象,以便在查询中延迟获取? 如果我有hibernate的Query对象,则可以让它创建一个条件对象,并使用此对象将获取类型设置为惰性。但是我必须使用JPA Query对象。这个问题有什么解决办法吗? 问题答案: 即使使用本地Hiber

  • 问题内容: 我需要在Matlab中运行Java .jar文件。 我们将文件称为MyJar.jar,如果有帮助,我正在运行Java 1.8.0_121-b13。 我尝试了不同的解决方案,并收到了这些相应的错误 我已经设置了javaclasspath:C:\ My \ Java \ Class \ Path \ To \ MyJar.jar(即使它没有任何帮助) 我什至已经准备好编辑classpath

  • 是否有一种方法可以禁用远程资源检索(也许有利于本地资源),最好是通过向Maven传递命令行参数,但如果不能,则通过修改Maven根POM的本地副本? 编辑:添加完整堆栈跟踪。似乎方法是使用来自Velocity的反射调用的,这使我认为一定有一个Velocity模板在某个Apache工件中引用,但是我在https://svn.Apache.org/repos/asf/maven/resources/的