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

SpringBoot在jar文件夹外运行时无法读取application.properties

车子平
2023-03-14

我已经创建了一个SpringBoot应用程序,并且我将Application.properties放置在jar文件的同一个文件夹中。这是文件的内容:

server.port=8081

当我在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时,它不读取application.properties,而是在端口8080中运行程序。

当我在jar文件夹(或任何带有application.properties的文件夹)中运行/bin/java-jar/opt/apl/org.web.exemplo-java-maven.1.0.0-90/org.web.exemplo-java-maven-1.0.0-90.jar时,它读取文件并在端口8081中运行。

发生什么事了?我认为属性文件需要放在jar文件的同一位置。但碰巧它需要在我运行该命令的同一文件夹中。

共有1个答案

鞠征
2023-03-14

按照惯例,在应用程序启动时,Spring Boot会在类路径根查找application.properties文件,例如JAR文件中目录结构的顶层。从cmdline启动应用程序时,您可以自定义此行为,并使用Spring特定的环境属性配置不同的application.properties位置:

/bin/java -jar /opt/apl/org.web.exemplo-java-maven.1.0.0-90/org.web.exemplo- 
java-maven-1.0.0-90.jar --spring.config.location=classpath:/other- 
application.properties

检查这个:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files

 类似资料:
  • 问题内容: 我只是想到了一种不那么直截了当的方法: 我可以以某种方式将JAR资源列表转换为内部JAR URL列表,然后可以使用openConnection()打开它。 问题答案: 您使用JarFile打开一个Jar文件。有了它,您可以使用’getEntry(String name)’或’entires’来获取ZipEntry或JarEntry(它们可以看作同一东西)。收到条目后,可以通过调用’ J

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

  • 问题内容: 我有一个JAR文件,我的所有代码都已存档以便运行。我必须访问一个属性文件,每次运行前都需要对其进行更改/编辑。我想将属性文件保留在JAR文件所在的目录中。无论如何,有没有告诉Java从该目录中提取属性文件? 注意:我不想将属性文件保留在主目录中或在命令行参数中传递属性文件的路径。 问题答案: 因此,你希望将与主/可运行jar相同文件夹中的文件视为文件,而不是作为主/可运行jar的资源。

  • 我有两个jar文件。第一个只包含接口 在请求的基础上,我试图从中加载我的实现类。jar文件存在于某个文件夹中,在运行时使用URLClassLoader。 课程正在加载 我确信这是由于我使用不同的类加载器来加载类,但是我如何克服类之间的兼容性问题。 同样的代码可以在正常的J2SE环境中工作,但不能在JBoss环境中工作。 如果我的查询不清楚,请让我知道我也可以粘贴源代码。

  • 我试图从一个json文件中读取值,该文件直接放在我的资源文件夹中。我能够在bootrun中成功运行它,没有任何错误 然而,当用上面的代码创建一个JAR时,我得到的异常是fileNotFound java-jar app-0.0.1-SNAPSHOT-plain。罐子

  • 应用程序似乎工作得很好,但是当我想执行这个api的可运行jar时,它就不工作了。所以我用C:...\jr6\bin\java.exe-jar C:\user\olivier\desktop\appli.jar执行我的jar 然后第一个问题是关于两个罐子,我必须倒置,使他们工作。(2个xstream JAR) 现在,一个新的错误出现了。应用程序似乎无法加载文件名language.properties