java启动读取配置文件
mac下通过dtruss跟踪mvn的执行过程 mvn是一个shell脚本,需要通过which mvn找到具体路径,编辑,在最后执行的java命令的前后 分别增加 set -x 与 set+x
set -x
exec "$JAVACMD" \
$MAVEN_OPTS \
$MAVEN_DEBUG_OPTS \
-classpath "${CLASSWORLDS_JAR}" \
"-Dclassworlds.conf=${MAVEN_HOME}/bin/m2.conf" \
"-Dmaven.home=${MAVEN_HOME}" \
"-Dlibrary.jansi.path=${MAVEN_HOME}/lib/jansi-native" \
"-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${CLASSWORLDS_LAUNCHER} "$@"
set +x
java运行前置条件,java加载正确JVM以及参数,步骤是
-
java -> JRE目录 -> 获取jvm类型(-XXaltjvm,-J等) -> 读取JVM.cfg参数 ->找到jvm(jvm.dylib) /Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home/jre/lib/jvm.cfg
-
load jvm后 -> 解析启动虚拟机参数(指定系统内存、GC、线程等如xss,xmx,xms,gc参数)->if jar:META-INF/MANIFEST.MF文件指定的Main-Class的主类名 / if MainClass: LoadClass