在这里记录一下出现闪退的原因,可能有很多种,我这只是其中一种
出现闪退的时候,在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了
标签:lang,Files,bat,java,kettle9.3,jdk1.8,DKETTLE,Class,双击 From: https://www.cnblogs.com/sjzchf/p/17528863.html