-classpath ${BOOTSTRAP_CLASSPATH}
${SDC_JAVA_OPTS}
com.streamsets.pipeline.BootstrapMain \
-mainClass
${SDC_MAIN_CLASS}
-apiClasspath "${API_CLASSPATH}"
-containerClasspath "${CONTAINER_CLASSPATH}" \
-streamsetsLibrariesDir "${STREAMSETS_LIBRARIES_DIR}"
-userLibrariesDir "${USER_LIBRARIES_DIR}"
-configDir ${SDC_CONF} \
-libsCommonLibDir "${LIBS_COMMON_LIB_DIR}" ${EXTRA_OPTIONS}
注意这里SDC_JAVA_OPTS
SDC_JAVA_OPTS=${SDC_JAVA_OPTS:="-Xmx1024m"}
SDC_MAIN_CLASS=${SDC_MAIN_CLASS:="com.streamsets.datacollector.main.DataCollectorMain"}
SDC_SECURITY_MANAGER_ENABLED=${SDC_SECURITY_MANAGER_ENABLED:="true"}
SDC_JAVA_OPTS="${SDC_JAVA_OPTS} -Dsdc.dist.dir=${SDC_DIST}"
SDC_JAVA_OPTS="${SDC_JAVA_OPTS} -Dsdc.resources.dir=${SDC_RESOURCES}"
SDC_JAVA_OPTS="${SDC_JAVA_OPTS} -Dsdc.hostname=${SDC_HOSTNAME}"
SDC_JAVA_OPTS="${SDC_JAVA_OPTS} -Dsdc.conf.dir=${SDC_CONF}"
SDC_JAVA_OPTS="${SDC_JAVA_OPTS} -Dsdc.data.dir=${SDC_DATA}"
SDC_JAVA_OPTS="${SDC_JAVA_OPTS} -Dsdc.log.dir=${SDC_LOG}"
BOOTSTRAP_JAR="${SDC_DIST}/libexec/bootstrap-libs/main/streamsets-datacollector-bootstrap-2.2.0.0.jar"
SDC_JAVA_OPTS="${SDC_JAVA_OPTS} -javaagent:${BOOTSTRAP_JAR}"
使用了-javaagent选项,关于javaAgent的介绍,这里有篇文章http://blog.csdn.net/ykdsg/article/details/12080071
大意是指你应用程序的入口类的Main方法执行之前,先执行javaAgent参数制定的jar包里MANIFEST.MF中敲定的类的