IDEA点击RUN后后台到底执行了什么操作

IDEA点击RUN后后台执行了什么操作

  • 1,序
  • 2,执行的操作
    • 2.1 控制台输出执行的命令
    • 2.2 `-classpath`环境变量命令释义

1,序

2,执行的操作

2.1 控制台输出执行的命令

点击RUN,控制台输出以下信息,是java的执行命令操作。

D:\jdk8\bin\java.exe -XX:TieredStopAtLevel=1 -noverify -Dspring.profiles.active=dev -Dspring.output.ansi.enabled=always -Ddruid.mysql.usePingMethod=false "-javaagent:D:\IntelliJ IDEA 2020.3.2\lib\idea_rt.jar=63881:D:\IntelliJ IDEA 2020.3.2\bin" -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -Dfile.encoding=UTF-8 
-classpath ...; D:\zcadmin-master\bigscreen-manager\target\classes;
D:\zcadmin-master\asset-manager\target\classes;
D:\zcadmin-master\device-manager\target\classes;
D:\zcadmin-master\zcadmin-system\target\classes;
D:\zcadmin-master\zcadmin-tools\target\classes;
D:\zcadmin-master\zcadmin-generator\target\classes;
...; 
D:\zcadmin-master\data-manager\target\classes;
D:\zcadmin-master\zcadmin-notify\target\classes;
D:\zcadmin-master\zcadmin-common\target\classes;
D:\zcadmin-master\zcadmin-logging\target\classes;
D:\zcadmin-master\zcadmin-oa\target\classes;
...;
com.leobit.AppRun

逐个分析上述命令行启动参数,其中包含了多个参数和类路径:

  1. D:\jdk8\bin\java.exe:这是 Java 程序的执行命令,指定了 Java 运行时环境的路径。
  2. -XX:TieredStopAtLevel=1:这是一个 JVM 参数,用于控制垃圾回收的级别。
  3. -noverify:这是一个 JVM 参数,用于关闭类文件的验证功能。
  4. -Dspring.profiles.active=dev:这是一个系统属性参数,用于指定 Spring 框架的运行环境。
  5. -Dspring.output.ansi.enabled=always:这是一个系统属性参数,用于控制 Spring 框架的输出是否使用 ANSI 颜色。
  6. -Ddruid.mysql.usePingMethod=false:这是一个系统属性参数,用于控制 Druid 数据库连接池是否使用 ping 方法。
  7. -javaagent:D:\IntelliJ IDEA 2020.3.2\lib\idea_rt.jar=63881:D:\IntelliJ IDEA 2020.3.2\bin:这是一个参数,用于指定 IntelliJ IDEA 的 JAR 文件,以便在程序运行时注入代码覆盖率工具。
  8. -Dcom.sun.management.jmxremote:这是一个系统属性参数,用于启用 JMX 远程管理功能。
  9. -Dspring.jmx.enabled=true:这是一个系统属性参数,用于启用 Spring 的 JMX 支持。
  10. -Dspring.liveBeansView.mbeanDomain:这是一个系统属性参数,用于指定 Spring Live Beans View 的 MBean 域名。
  11. -Dspring.application.admin.enabled=true:这是一个系统属性参数,用于启用 Spring 应用程序管理员功能。
  12. -Dfile.encoding=UTF-8:这是一个系统属性参数,用于指定文件的编码。
    这个命令行参数用于启动一个 Java 程序,并指定了程序运行所需的环境和参数。其中包含了多个与 Spring 框架和 IntelliJ IDEA 相关的参数,用于配置和优化程序的运行环境。
  13. -classpath...;:这是类路径参数,用于指定 Java 程序所在的类路径。在这个例子中,有多个类路径,它们之间用分号隔开。这些类路径包含了项目的各类库文件和源代码文件。
  14. com.leobit.AppRun:这是 Java 程序的入口点,即程序的主类。
    这个命令行参数用于启动一个 Java 程序,并指定了程序运行所需的环境和参数。

能够看出使用了java-classpath命令。

2.2 -classpath环境变量命令释义

-classpath 是用于指定 Java 虚拟机在运行 Java 程序时查找类文件的路径的命令。它可以用于指定一个或多个包含类文件的目录或 JAR 文件。

以下是如何使用 -classpath 命令:

  1. 指定单个目录

    如果你的类文件都存放在一个目录下,可以使用以下命令:

 java -classpath /path/to/your/classes YourMainClass

这将告诉 Java 虚拟机在 /path/to/your/classes 目录下查找类文件。

  1. 指定多个目录

    如果你的类文件分布在多个目录下,你可以使用冒号 :(在 Windows 下是分号 ;)来分隔目录:

    java -classpath /path/to/your/classes:/path/to/another/classes YourMainClass
    

    这将使得 Java 虚拟机在两个目录下都查找类文件。

  2. 指定 JAR 文件

    如果你的类文件被打包成了一个 JAR 文件,你可以直接指定该 JAR 文件:

    java -classpath /path/to/your/yourJarFile.jar YourMainClass
    
  3. 在编译时使用 -classpath

    在使用 javac 编译 Java 源代码时,你也可以使用 -classpath 来指定编译器在哪里查找依赖的类文件:

    javac -classpath /path/to/your/classes YourSourceFile.java
    
  4. 使用类路径缩写 .

    如果你希望在当前目录下查找类文件,你可以使用 . 表示当前目录:

    java -classpath . YourMainClass
    
  5. 在 MANIFEST.MF 文件中指定类路径

    如果你的 JAR 文件包含了 MANIFEST.MF 文件,并且该文件指定了 Class-Path 属性,Java 虚拟机将会使用该属性中指定的类路径。

    例如:

    Class-Path: lib/library.jar lib/other.jar
    

    这将使得 Java 虚拟机在 lib 目录下查找 library.jarother.jar

注意:

  • 如果你没有指定 -classpath,Java 将会使用默认的类路径,通常包括当前目录(.)以及 Java 安装目录中的一些库。
  • 如果你使用 IDE 来运行 Java 程序,通常可以在项目的配置中设置类路径,而不需要手动指定 -classpath

你可能感兴趣的:(#,Java,intellij-idea,java)