【问题标题】:SpringBoot: How to provide VM Argument in Spring Boot App, while running from EclipseSpring Boot:如何在 Spring Boot 应用程序中提供 VM 参数,同时从 Eclipse 运行
【发布时间】:2016-02-04 12:07:26
【问题描述】:

我正在使用 Spring Boot 1.3.0.RELEASE。 对于我的应用程序,当我从 CMD 运行应用程序时,我提供了一些如下所示的外部 jar 路径。

java -Dloader.path="lib,config,C:/TM/ojdbc14-10.2.0.2.0.jar,spring" -jar ticketmanager-application-0.3.0-SNAPSHOT.jar

现在,当我尝试从 Eclipse 运行应用程序时,我将 -Dloader.path="lib,config,C:/TM/ojdbc14-10.2.0.2.0.jar,spring" 添加到 VM 参数。如下图所示。

编辑:添加 Maven Spring 插件配置 ------------------------

这里,配置部分,我已经为loader.path添加了

<plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.3.0.RELEASE</version>
                <configuration>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

因此,我的问题是, 我应该如何添加这个参数?因为它不起作用:(

【问题讨论】:

  • 您已经添加了它。那么,你的问题是什么?
  • 另外一件事:你为什么要用这么古老的Oracle驱动?
  • 还有:到底是什么不工作?
  • 好吧,我的驱动程序 jar 位于 app.jar 之外,因此使用 loader.path 我传递了外部 jar 的路径。现在,这个东西在从 CMD 执行时工作但是,在使用 eclipse vm 参数时不起作用,广告作为 spring boot 应用程序运行
  • 显示你使用loader.path的代码?

标签: java eclipse spring spring-boot jvm-arguments


【解决方案1】:

程序参数,是传递给程序的main 方法的参数。看起来像空格分隔的值列表。示例:

java Program arg1 arg2 arg3

VM 参数,是以name=value 格式传递给Java 虚拟机的系统属性。示例:

java -Dprop1=value1 -Dprop2=value2 Program

在您的情况下,您需要添加 VM 参数,而不是 程序参数

顺便说一句,根据documentation,您可以在application.properties 中添加loader.pathloader.main 属性。有关如何使用 application.property 以及如何将配置设置外部化的信息,您可以找到 here

【讨论】:

  • 好的!.. 我在 application.properties 中添加了 loader.path,但它仍然无法正常工作。有什么想法吗?
  • @anij 首先,尝试通过 VM 参数传递 loader.path。我不知道,为什么你的application.properties 不起作用。我的效果很好。请检查您是否将application.properties 放入正确的位置。
  • 是的,我已将 application.properties 放置在适当的位置,因为在从 cmd 或 linux 启动应用程序时,我还将 application.properties 中的其他属性引用为-Dxxx=123。我已将类似 loader.path = lib,config,c:/ojdbc14-10.2.0.2.0.jar 的配置放在文件顶部。但它不起作用。
  • 从 CMD 模式:loader.path 和其他属性也像定义端口和所有属性一样工作,但从 Eclipse VM 参数设置其他人正在工作..只有 loader.path 不工作
猜你喜欢
  • 2016-04-27
  • 1970-01-01
  • 2014-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-11
  • 1970-01-01
  • 2023-03-16
相关资源
最近更新 更多