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

Spring Boot-从jar文件运行时无法解析占位符

田俊爽
2023-03-14

我遇到了一个奇怪的问题,我可以在Intellij中运行Spring Boot应用程序而没有问题,但当我这样做时:

mvn clean package -Pst -Dspring.profiles.active=st && java -jar target/myapp-0.0.1-SNAPSHOT.jar

我可以看到这样的错误:Spring Boot无法解析@value占位符。

ERROR o.s.boot.SpringApplication - Application startup failed
java.lang.IllegalArgumentException: Could not resolve placeholder

我所做的研究是获取jar文件,并像使用jar xf myapp.jar一样提取这些文件,我可以在类路径根中看到属性文件。最初,我遇到了Maven没有将属性和静态数据main/resource文件夹打包的问题,但我已经通过以下方法解决了这个问题:

            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>static</directory>
                <targetPath>static</targetPath>
            </resource>

有什么意见,想法,我会错过什么?

共有1个答案

汪阳辉
2023-03-14

我设法解决了这件事。这真的很奇怪,似乎我需要告诉java在哪个配置文件中运行jar,例如spring.profiles.active=st。

mvn clean package -Pst -Dspring.profiles.active=st && java -jar target/myapp-0.0.1-SNAPSHOT.jar --spring.profiles.active=st
 类似资料:
  • 问题内容: 我对春天还很陌生,所以请问这是一个愚蠢的问题。当我尝试启动程序时,出现以下错误:。执行以下代码时,将引发错误: 资源文件夹中存在一个名为的属性文件,其中包含主机和端口的信息。我不确定在哪里定义(如果有的话)。也许甚至没有定义,这就是问题所在。我需要将其更改为类似的东西还是缺少其他内容? 问题答案: 您没有正确读取属性文件。propertySource应该将参数传递为:或。将注释更改为:

  • 我有个例外 我也尝试过使用JarLoader和PropertiesLauncher,但运气并不好。 我确实在application.properties中定义了属性sysm.client.api.path,但为了更好地衡量,我还将它作为-d参数-dsysm.client.api.path=my-path添加到命令行中。 注意:IntelliJ没有将其作为a-jar运行;相反,它在一个大型类路径命令

  • 我已经创建了一个SpringBoot应用程序,并且我将Application.properties放置在jar文件的同一个文件夹中。这是文件的内容: 当我在jar文件夹外运行/bin/java-jar/opt/apl/org.web.exemplo-java-maven.1.0.0-90/org.web.exemplo-java-maven-1.0.0-90.jar时,它不读取applicatio

  • 我正在尝试从命令行读取配置文件。我主要是这样做的: 然后创建了.jar文件,然后进入包含jar的文件夹,并尝试通过执行以下操作来运行它: 我的application.yml文件是我的JAR的同一个文件夹。我还将路径设置为,但错误仍然存在。是不是路径写错了?还是我必须在代码中添加/修改一些东西? 编辑

  • 问题内容: 我可以通过netbeans运行我的项目,但是在制作一个jar文件并双击它之后,我得到了错误,找不到Java运行时环境?我在Windows上。 问题答案: 您没有创建文件关联。右键单击Internet Explorer中的.jar文件,选择“打开方式”,然后导航到您的JRE。选择java.exe可执行文件,并确保命令行参数中存在“ -jar”。 .jar文件将作为第一个参数传递给JVM。

  • 问题内容: 我有我的配置: 我得到错误 我知道这可能缺少属性文件,但是我在类路径中恰好有它。有什么不见了? 我的web.xml: 问题答案: 你的应用程序中可能有多个。尝试在超类的方法上设置一个断点,看看在应用程序启动时是否多次调用了该断点。如果不止一个,则可能需要查看配置属性,以便你的应用程序可以正常启动。