kettle9.3双击Spoon.bat文件闪退

发布时间 2023-07-05 16:18:17作者: 那、就这样吧

在这里记录一下出现闪退的原因,可能有很多种,我这只是其中一种

出现闪退的时候,在kettle启动目录中找到SpoonDeBug.bat,双击运行,根据提示一直按Y,最后完成后会在当前目录下生成一个SpoonDeBug.txt文件,里面记载的是报错信息,报错信息如下:

DEBUG: Using JAVA_HOME
DEBUG: _PENTAHO_JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0_66
DEBUG: _PENTAHO_JAVA=C:\Program Files (x86)\Java\jdk1.8.0_66\bin\java.exe

D:\kettle\data-integration>"C:\Program Files (x86)\Java\jdk1.8.0_66\bin\java.exe"   "-Xms512m" "-Xmx512m" "-Djava.library.path=libswt\win32;/bin" "-Djava.endorsed.dirs=C:\Program Files (x86)\Java\jdk1.8.0_66\jre\lib\endorsed;C:\Program Files (x86)\Java\jdk1.8.0_66\lib\endorsed;D:\kettle\data-integration\system\karaf\lib\endorsed"  "-DKETTLE_HOME=" "-DKETTLE_REPOSITORY=" "-DKETTLE_USER=" "-DKETTLE_PASSWORD=" "-DKETTLE_PLUGIN_PACKAGES=" "-DKETTLE_LOG_SIZE_LIMIT=" "-DKETTLE_JNDI_ROOT=" -jar launcher\launcher.jar -lib ..\libswt\win32  /level:Debug 
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Control
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at org.pentaho.commons.launcher.Launcher.main(Launcher.java:91)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Control
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 6 more

参考这篇文章:https://blog.csdn.net/les18205487251/article/details/125354093

最终发现原来是jdk的原因,原来的jdk是32位的,卸载后重新安装jdk1.8的64位版本的

安装完成后,修改环境变量,然后查看一下jdk的版本(cmd中输入java -version),看看有没有修改过来,如果没有修改过来的话需要重启电脑

重启后就可以打开kettle了