一、概述
开源产品总是让人欢喜让人忧。 喜的是低成本,忧的是低成熟度。 所以,不少有Java基础的K友都在研究源代码。 掌控源代码,当然是最靠谱的,但对技术水平要求非常高。笔者希望通过介绍Kettle程序启动的基本原理,为源代码研究者打开一扇窗户,一窥源代码的究竟。 以下内容以Spoon为例,但原理适用于Kitchen、Pan、Carte等所有其他应用。二、环境
硬件:处理器 Intel i7-7700HQ 2.8GHz 内存32G操作系统:Windows 7 x64 旗舰版。内部版本6.1.7601,SP1Java版本:1.8.0_181 HotSpot 64-Bit mixed mode 三、原理解析1、批处理文件set-pentaho-env.bat
批处理文件一般不会单独执行,因为它的功能是进行环境配置。但是大多数Kettle相关的批处理都会先执行此脚本,以设置以下两个环境变量:
_PENTAHO_JAVA_HOME
_PENTAHO_JAVA
前者是Java环境路径,一般是JDK/JRE所在绝对路径;后者表示启动Java进程需要的java.exe/javaw.exe文件所在绝对路径。由于并不确定用户到底需要使用java.exe还是javaw.exe,所以脚本单独定义了__LAUNCHER环境变量表达此选择。
脚本将按照以下顺序搜索__LAUNCHER的位置:
第一个