batの磕磕碰碰

      前两天用kettle和存储过程实现了两个划小接口,然后用bat调用它们,在自己的xp系统上测试完全通过,没有任何问题。

然后很开心滴把成果打包给北京的同事他们使用。第二天他们跟我说无法取数,我马上就流冷汗了,直觉不会这么简单就算了。

万般无奈下,只得远程解决问题哪~!kettle最令人开心的是不需要安装,只需要提供相应的jdk版本就可以。打开spoon.bat,

可以查询到相应的版本:

==============================================

REM java version "1.6.0_17"
REM Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
REM Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)

===============================================

      当同事说无法取数时,我第一个反应就是糟糕了,不会的jdk问题吧。唉,他的tomcat要用jdk5,但是kettle需要jdk6。

jdk6的安装很简单,但是关键是环境变量的配置问题:

@JAVA_HOME   D:Program FilesJavajdk1.6.0_02

@PATH            %JAVA_HOME%in

@CLASSPATH   .;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar

(.;当前路径)

       测试jdk是否安装配置成功:【cmd】-【javac】

       提示:javac不是内部或者外部命令。度娘上都是告诉你环境配置错误了,姐要控告这些坑爹货,事实上并非一定是这个

因素,有可能是因为命令的问题,有些系统无法缺省命令的后缀,所以测试时用javac.exe。

       终于环境已经配置好了,但是我写的bat虽然不提示找不到路径,但是却说找不到find命令。这个的原因和上面是同样

的原理,只需要在spoon.bat里面将find改成find.exe即可解决问题。

:USEJAVAFROMPENTAHOJAVAHOME
FOR /F %%a IN ('.java.exe -version 2^>^&1^|%windir%system32find.exe /C "64-Bit"') DO

==================================================================

最后有一个经验得到:调用bat时不要直接执行bat,要用cmd来调用bat,这样才会显示所有详细的日志,方便查找问题和

调试。

    

原文地址:https://www.cnblogs.com/zhutouying/p/3148319.html