从Java | Spring Boot中的外部文件读取垃圾收集(GC)配置
使用给定的GC配置运行spring引导jar文件从Java | Spring Boot中的外部文件读取垃圾收集(GC)配置,java,spring-boot,garbage-collection,Java,Spring Boot,Garbage Collection,使用给定的GC配置运行spring引导jar文件 -Xloggc:/file/path/gc.log -XX:+PrintGCTimeStamps -XX:+打印日期戳 -XX:+PrintGCDetails 但是,当我们运行类似jar的程序时,不是在命令行中传递所有这些GC信息数据 java -Dspring.profiles.active=<env-name> -Xmx5G -Xms2G -XX:MaxMetaspaceSize=2G -XX:+UseG1GC -Xloggc
- -Xloggc:/file/path/gc.log
- -XX:+PrintGCTimeStamps
- -XX:+打印日期戳
- -XX:+PrintGCDetails
java -Dspring.profiles.active=<env-name> -Xmx5G -Xms2G -XX:MaxMetaspaceSize=2G -XX:+UseG1GC -Xloggc:/file/path/gc.log -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintGCDetails -jar application.jar
通过像这样运行jar
java @args
将错误获取为
Error: Could not find or load main class @args
它无法找到主类。我认为它没有在
args
文件中识别jar。如果您使用的是Java 9及更高版本,(@file1
)应该可以工作1
Java9和更高版本的另一个选项是设置环境变量。这将提供一个选项列表,这些选项将自动添加到java
命令行的JVM选项之前
对于Java 8和更早版本,您的选项更加有限:
- 为
命令或应用程序的命令行编写shell包装器脚本、shell函数或shell别名java
- 使用
命令时显式添加环境变量;e、 gjava
$ java $STD_OPTS my.app.Main args ...
- 可以想象,您可以实现一个定制的启动器(在C中),它可以做一些聪明的事情,比如模拟Java9的@file机制
1-根据症状,我认为您尝试使用
@file
失败,可能是因为该文件未在适当的目录中找到,或者是因为您正在使用Java 8或更早版本。您正在寻找吗?@Slaw,是的。差不多吧。但是,通过使用这种方法,我遇到了一个问题。将用该问题更新问题。@Slaw更新了问题中的问题您使用的是什么版本的Java?如果查看java-help
的输出,是否会看到@参数文件
选项?openjdk版本“1.8.0_222”
。不,我在java-help
中没有看到任何@参数文件
选项
$ java $STD_OPTS my.app.Main args ...