公司用kettle3.2做ETL
下载好、解压
(下载地址:https://sourceforge.net/projects/pentaho/files/Data%20Integration/)
3.2老版本的kettle真的是一坨。。。
无力吐槽
嗯。。下载好了,双击spoon.bat
等待着。。。
抽支烟去吧。
好的。。
斯~
回来了,并没有启动。
于是我百度google,一大堆回答。
大部分是jdk版本问题,classpath啊 path啊 java_home啊。。。
挨个检查一遍,重下一边可以吧。java javac命令都正常好吧。
再次运行,还是一闪而过。难道是双击的原因。
于是乎
win+R 打开cmd,进入kettle目录 执行spoon.bat
提示 系统找不到指定的文件。 gg思密达。
怎么可能!!!
我这个文件安安静静躺在目录里你说没有????
检查了数遍后,我选择下载一个新版本的kettle试试。。
新版本的正常运行起来了。
然后比对两个spoon.bat 发现
kettle3.2 都是在本目录下执行,没有涉及到环境变量。
突然发现, 系统找不到指定的文件。 是bat的报错不是没找到bat文件。。。
仔细阅读3.2版本的kettle的spoon.bat 发现 最上面有几行
@echo off
REM **************************************************
REM Check for Windows 2000, since the command line length is limited
REM **************************************************
ver | find "Windows 2000" >nul
if errorlevel 1 goto nowin2k
echo Attention: You are using Windows 2000. Please see
echo http://wiki.pentaho.org/display/EAI/Windows+2000
echo when Spoon does not start. After fixing the problem
echo you can delete the pause line in your Spoon.bat file.
pause
:nowin2k
ver | find ‘’windows 2000‘’> nul
这句在比对系统啊
在cmd命令行里输入 ver 打印出我电脑的版本
D:\Kettle_3.2.0\Kettle_3.2.0>ver
Microsoft Windows [版本 10.0.16299.15]
输入find ‘’windows 2000‘’> nul
D:\Kettle_3.2.0\Kettle_3.2.0>find "windows 2000">nul
系统找不到指定的文件。```
哇~!!!原因找到了!它没找到Windows 2000 这个,而且在这句之后 bat运行的代码就是在输出一些信息,没有影响到bat的执行。
于是
直接把这几行注释掉!
@echo off
REM ****************************************
REM Check for Windows 2000, since the command line length is limited
REM ****************************************
::ver | find “Windows 2000” >nul
::if errorlevel 1 goto nowin2k
goto nowin2k
echo Attention: You are using Windows 2000. Please see
echo http://wiki.pentaho.org/display/EAI/Windows+2000
echo when Spoon does not start. After fixing the problem
echo you can delete the pause line in your Spoon.bat file.
pause
:nowin2k
…
“`
但是记得加一句goto nowin2k
再运行spoon.bat
完美~
成功运行