我认为在_JAVA_OPTIONS和之间进行比较会很棒JAVA_TOOL_OPTIONS.我一直在寻找一个,但我找不到任何东西,所以我希望我们能在Stackoverflow上找到这方面的知识.
JAVA_OPTS包括完整性.它不是JVM的一部分,但在野外有很多问题.
到目前为止,我发现:
JAVA_OPTSJDK不使用它,而是由许多其他应用程序使用(请参阅此文章).JAVA_TOOL_OPTIONS并且_JAVA_OPTIONS是将JVM参数指定为环境变量而不是命令行参数的方法.
java和javac_JAVA_OPTIONS (覆盖其他人)JAVA_TOOL_OPTIONS (被其他人覆盖)JAVA_TOOL_OPTIONS和_JAVA_OPTIONSJAVA_TOOL_OPTIONS和之间是否存在任何其他差异_JAVA_OPTIONS(优先级除外).JAVA_TOOL_OPTIONS和_JAVA_OPTIONS(除了java和javac)JAVA_TOOL_OPTIONS和_JAVA_OPTIONS我找不到任何关于的文档_JAVA_OPTIONS.该文件JAVA_TOOL_OPTIONS没有说明差异:
由于无法始终访问或修改命令行,例如在嵌入式VM中或仅在脚本内深入启动的VM,因此提供了JAVA_TOOL_OPTIONS变量,以便在这些情况下可以启动代理.
...
这是我用来解决这个问题的代码.控制台输出包含在注释中:
export JAVA_OPTS=foobar
export JAVA_TOOL_OPTIONS=
export _JAVA_OPTIONS="-Xmx512m -Xms64m"
java -version
# Picked up JAVA_TOOL_OPTIONS:
# Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m
# …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置gradle来启动bootRun启用各种弹簧配置文件的过程.
我目前的bootRun配置如下:
bootRun {
// pass command line options from gradle to bootRun
// usage: gradlew bootRun "-Dspring.profiles.active=local,protractor"
if (System.properties.containsKey('spring.profiles.active')) {
systemProperty "spring.profiles.active", System.properties['spring.profiles.active']
}
}
Run Code Online (Sandbox Code Playgroud)
我想用gradle任务设置系统属性,然后执行bootRun.
我的尝试看起来像这样:
task bootRunDev
bootRunDev {
System.setProperty("spring.profiles.active", "Dev")
}
Run Code Online (Sandbox Code Playgroud)
几个问题:
systemPropertyspring boot bootRun配置的一部分?bootRunDev配置发生之前bootRun-Eric
我本质上想要在gradle中创建一个执行命令的任务
gradle bootRun -Dspring.profiles.active=test
Run Code Online (Sandbox Code Playgroud)
如果从命令行执行,这个命令正是我想要它做的,但是我没有运气试图使用类型:Exec在任务上也没有运气传递给系统属性
我真的不想把它变成一个用户需要知道运行的外部命令.我希望它出现在任务/其他任务之下.
我迄今为止最接近的尝试:
task bootRunTest() {
executable "gradle"
args "-Dspring.profiles.active=test bootRun"
}
Run Code Online (Sandbox Code Playgroud)