SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例

Idea 启动SpringBoot的命令

C:\Users\Administrator\.jdks\corretto-17.0.8\bin\java.exe 
-XX:TieredStopAtLevel=1 
-Dspring.output.ansi.enabled=always 
-Dcom.sun.management.jmxremote 
-Dspring.jmx.enabled=true 
-Dspring.liveBeansView.mbeanDomain 
-Dspring.application.admin.enabled=true "
-Dmanagement.endpoints.jmx.exposure.include=*" 
"-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.3\lib\idea_rt.jar=5810:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\JavaProjects\first-spring-boot\target\classes;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-web\3.1.2\spring-boot-starter-web-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter\3.1.2\spring-boot-starter-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot\3.1.2\spring-boot-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\3.1.2\spring-boot-autoconfigure-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-logging\3.1.2\spring-boot-starter-logging-3.1.2.jar;C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-classic\1.4.8\logback-classic-1.4.8.jar;C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-core\1.4.8\logback-core-1.4.8.jar;C:\Users\Administrator\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.20.0\log4j-to-slf4j-2.20.0.jar;C:\Users\Administrator\.m2\repository\org\apache\logging\log4j\log4j-api\2.20.0\log4j-api-2.20.0.jar;C:\Users\Administrator\.m2\repository\org\slf4j\jul-to-slf4j\2.0.7\jul-to-slf4j-2.0.7.jar;C:\Users\Administrator\.m2\repository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;C:\Users\Administrator\.m2\repository\org\yaml\snakeyaml\1.33\snakeyaml-1.33.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-json\3.1.2\spring-boot-starter-json-3.1.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.15.2\jackson-databind-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.15.2\jackson-annotations-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.15.2\jackson-core-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.15.2\jackson-datatype-jdk8-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.15.2\jackson-datatype-jsr310-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.15.2\jackson-module-parameter-names-2.15.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\3.1.2\spring-boot-starter-tomcat-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\10.1.11\tomcat-embed-core-10.1.11.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\10.1.11\tomcat-embed-el-10.1.11.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\10.1.11\tomcat-embed-websocket-10.1.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-web\6.0.11\spring-web-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-beans\6.0.11\spring-beans-6.0.11.jar;C:\Users\Administrator\.m2\repository\io\micrometer\micrometer-observation\1.11.2\micrometer-observation-1.11.2.jar;C:\Users\Administrator\.m2\repository\io\micrometer\micrometer-commons\1.11.2\micrometer-commons-1.11.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-webmvc\6.0.11\spring-webmvc-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-aop\6.0.11\spring-aop-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-context\6.0.11\spring-context-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-expression\6.0.11\spring-expression-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-api\2.0.7\slf4j-api-2.0.7.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-core\6.0.11\spring-core-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-jcl\6.0.11\spring-jcl-6.0.11.jar com.zing.firstspringboot.FirstSpringBootApplication

这段代码是一个 Java 启动命令,用于运行 Spring Boot 应用程序。让我为你详细解释每个部分的含义:

  1. C:\Users\Administrator\.jdks\corretto-17.0.8\bin\java.exe: 这是 Java 的可执行文件路径,表示你正在使用 Amazon Corretto 17 版本的 Java 运行你的应用程序。

  2. -XX:TieredStopAtLevel=1: 这是 Java 虚拟机的参数,用于控制 JIT 编译的阶段。在这里,它将 JIT 编译限制为第一层。

  3. -Dspring.output.ansi.enabled=always: 设置 Spring 输出使用 ANSI 颜色。

  4. -Dcom.sun.management.jmxremote: 启用 Java 远程管理。

  5. -Dspring.jmx.enabled=true: 启用 Spring JMX(Java Management Extensions)。

  6. -Dspring.liveBeansView.mbeanDomain: 设置 Spring Live Beans View 的 MBean 域。

  7. -Dspring.application.admin.enabled=true: 启用 Spring 应用程序管理。

  8. "-Dmanagement.endpoints.jmx.exposure.include=*": 配置哪些管理端点会在 JMX 中公开。

  9. "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.3\lib\idea_rt.jar=5810:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.3\bin": 配置 IntelliJ IDEA 的 Java 代理。

  10. -Dfile.encoding=UTF-8: 设置文件编码为 UTF-8。

  11. -classpath: 设置类路径,包含了你的应用程序的类文件以及各种依赖。

  12. com.zing.firstspringboot.FirstSpringBootApplication: 这是你的 Spring Boot 应用程序的入口类的完全限定名,用于告诉 Java 虚拟机从哪个类开始执行。

 

-Dspring.output.ansi.enabled=always 这类传入参数,代码中怎么获取到

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MyComponent {

    @Value("${spring.output.ansi.enabled}")
    private String ansiEnabled;

    // 省略其他代码
}

在idea开发工具中打开RunDebug Configurations界面(2022版本)

2021版本和2022版本长得不一样,但是还是能对上的

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例_第1张图片

 2022版本的界面,点击Modify options可以添加VM options栏

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例_第2张图片

以jar包启动不同的环境案例

Idea 启动SpringBoot的命令

C:\Users\Administrator\.jdks\corretto-17.0.8\bin\java.exe -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.3\lib\idea_rt.jar=5810:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.3\bin" -Dfile.encoding=UTF-8 -classpath E:\JavaProjects\first-spring-boot\target\classes;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-web\3.1.2\spring-boot-starter-web-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter\3.1.2\spring-boot-starter-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot\3.1.2\spring-boot-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\3.1.2\spring-boot-autoconfigure-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-logging\3.1.2\spring-boot-starter-logging-3.1.2.jar;C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-classic\1.4.8\logback-classic-1.4.8.jar;C:\Users\Administrator\.m2\repository\ch\qos\logback\logback-core\1.4.8\logback-core-1.4.8.jar;C:\Users\Administrator\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.20.0\log4j-to-slf4j-2.20.0.jar;C:\Users\Administrator\.m2\repository\org\apache\logging\log4j\log4j-api\2.20.0\log4j-api-2.20.0.jar;C:\Users\Administrator\.m2\repository\org\slf4j\jul-to-slf4j\2.0.7\jul-to-slf4j-2.0.7.jar;C:\Users\Administrator\.m2\repository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;C:\Users\Administrator\.m2\repository\org\yaml\snakeyaml\1.33\snakeyaml-1.33.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-json\3.1.2\spring-boot-starter-json-3.1.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.15.2\jackson-databind-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.15.2\jackson-annotations-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.15.2\jackson-core-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.15.2\jackson-datatype-jdk8-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.15.2\jackson-datatype-jsr310-2.15.2.jar;C:\Users\Administrator\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.15.2\jackson-module-parameter-names-2.15.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\3.1.2\spring-boot-starter-tomcat-3.1.2.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\10.1.11\tomcat-embed-core-10.1.11.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\10.1.11\tomcat-embed-el-10.1.11.jar;C:\Users\Administrator\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\10.1.11\tomcat-embed-websocket-10.1.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-web\6.0.11\spring-web-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-beans\6.0.11\spring-beans-6.0.11.jar;C:\Users\Administrator\.m2\repository\io\micrometer\micrometer-observation\1.11.2\micrometer-observation-1.11.2.jar;C:\Users\Administrator\.m2\repository\io\micrometer\micrometer-commons\1.11.2\micrometer-commons-1.11.2.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-webmvc\6.0.11\spring-webmvc-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-aop\6.0.11\spring-aop-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-context\6.0.11\spring-context-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-expression\6.0.11\spring-expression-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\slf4j\slf4j-api\2.0.7\slf4j-api-2.0.7.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-core\6.0.11\spring-core-6.0.11.jar;C:\Users\Administrator\.m2\repository\org\springframework\spring-jcl\6.0.11\spring-jcl-6.0.11.jar com.zing.firstspringboot.FirstSpringBootApplication

ChatGPT 帮忙解释下这段命令各项参数

这段代码是一个 Java 启动命令,用于运行 Spring Boot 应用程序。让我为你详细解释每个部分的含义:

  1. C:\Users\Administrator\.jdks\corretto-17.0.8\bin\java.exe: 这是 Java 的可执行文件路径,表示你正在使用 Amazon Corretto 17 版本的 Java 运行你的应用程序。

  2. -XX:TieredStopAtLevel=1: 这是 Java 虚拟机的参数,用于控制 JIT 编译的阶段。在这里,它将 JIT 编译限制为第一层。

  3. -Dspring.output.ansi.enabled=always: 设置 Spring 输出使用 ANSI 颜色。

  4. -Dcom.sun.management.jmxremote: 启用 Java 远程管理。

  5. -Dspring.jmx.enabled=true: 启用 Spring JMX(Java Management Extensions)。

  6. -Dspring.liveBeansView.mbeanDomain: 设置 Spring Live Beans View 的 MBean 域。

  7. -Dspring.application.admin.enabled=true: 启用 Spring 应用程序管理。

  8. "-Dmanagement.endpoints.jmx.exposure.include=*": 配置哪些管理端点会在 JMX 中公开。

  9. "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.3\lib\idea_rt.jar=5810:C:\Program Files\JetBrains\IntelliJ IDEA 2022.3.3\bin": 配置 IntelliJ IDEA 的 Java 代理。

  10. -Dfile.encoding=UTF-8: 设置文件编码为 UTF-8。

  11. -classpath: 设置类路径,包含了你的应用程序的类文件以及各种依赖。

  12. com.zing.firstspringboot.FirstSpringBootApplication: 这是你的 Spring Boot 应用程序的入口类的完全限定名,用于告诉 Java 虚拟机从哪个类开始执行。

总之,这段启动命令用于启动 Spring Boot 应用程序,并设置了一些 Java 虚拟机参数和应用程序的配置。它告诉 Java 虚拟机从指定的入口类开始执行,使得你的 Spring Boot 应用能够正常运行。

-Dspring.output.ansi.enabled=always 这类传入参数,代码中怎么获取到

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MyComponent {

    @Value("${spring.output.ansi.enabled}")
    private String ansiEnabled;

    // 省略其他代码
}

将springboot打成jar包按环境进行启动

maven的安装

  1. 下载maven或者直接用idea的maven进行配置,这里给idea的maven进行配置,idea内置maven3路径需要通过everything来找一下,搜索mvn, 右键打开路径

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例_第3张图片

把上面的路径拷贝进来,到环境变量中去配置

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例_第4张图片

用MAVEN_HOME的方式非常好,可以非常方便的切换MVN的版本

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例_第5张图片

本地没配置JAVA_HOME时,mvn --version 会提示你找不到JAVA_HOME 路径,而且powershell控制台也找不到mvn命令,等你设置好了JAVA_HOME 之后,则powershell也能识别mvn了,这个挺奇怪的,我暂且理解为mvn需要java环境才能运行,这里我依然使用的是idea自带的jdk-17

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例_第6张图片

用户变量和系统变量都配置上去

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例_第7张图片

将springboot打成jar包

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例_第8张图片

然后选中该jar文件,右键单击打开面板选择Show in Explorer 即可跳转到该文件位置上,

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例_第9张图片

在路径栏输入cmd 然后点击回车,直接在cmd打开

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例_第10张图片

输入以下命令,可以启动dev环境

java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例_第11张图片

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例_第12张图片

你可能感兴趣的:(Python/PHP,思维学,SpringBoot,spring,boot,学习,intellij-idea)