标题:Kettle安装报错:Debug 
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Control解决方式

问题表现:

SpoonDebug.txt

 "-Xms512m" "-Xmx512m" "-Djava.library.path=libswt\win32;/bin" "-Djava.endorsed.dirs=C:\Program Files (x86)\Java\jre1.8.0_333\jre\lib\endorsed;C:\Program Files (x86)\Java\jre1.8.0_333\lib\endorsed;D:\安装包\pdi-ce-9.3.0.0-428\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/Controlat java.lang.Class.getDeclaredMethods0(Native Method)at java.lang.Class.privateGetDeclaredMethods(Unknown Source)at java.lang.Class.privateGetMethodRecursive(Unknown Source)at java.lang.Class.getMethod0(Unknown Source)at java.lang.Class.getMethod(Unknown Source)at org.pentaho.commons.launcher.Launcher.main(Launcher.java:91)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Controlat java.net.URLClassLoader.findClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)... 6 more

我的报错和网上找到的教程中的报错都不同,NoClassDefFoundError: org/eclipse/swt/widgets/Control。

表现为spoon.bat打开时,出现命令行窗口之后一闪而过。

1、jdk、jre都有安装

2、环境变量逐个核对回填,都没有错误。

3、jdk用了更新程序从1.7升级到1.8还是不能解决问题

4、java安装路径默认

5、命令提示符输入:“ java -version”有版本,“javac”找不到这个软件的位置。

6、报错中常见的一个解决方法:

修改一下spoon.bat里内存配置:

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms2058m" "-Xmx1024m" "-XX:MaxPermSize=256m"

改为:

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms512m" "-Xmx512m" "-XX:MaxPermSize=256m"

这个方法试过了也没有用。

spoon.bat的修改,用右键-打开方式选记事本一类的去打开才可以修改。

解决方案和细节需要注意的细节

最终解决方式是:

1、在“添加删除程序”中,删除掉jdk、jre的版本,重新在官网安装。

jdk现在官网的版本是jdk-18.0.1.1,jre是jre1.8.0_333。

下载安装包时留意最末尾数字,我的1.7安装包是jdk-7u51-windows-i586,末尾数字的含义大家可以自行搜索一下,在设置中看系统的CPU和安装包是否是兼容的。1.8是x64了。

2、1.7安装的时候,默认路径在C盘program(x86),而且jdk里面是有javac这个文件的。1.7升级到1.8的版本默认路径和1.7同,1.8重新安装的时候默认路径在c盘的program。1.7升级到1.8的版本以及1.8重新安装的时候都没有javac文件。

我看了其中一篇文档,博主说到他的安装就是和路径带了括号有关系,解决这个问题的过程中,我自己的问题也不能排除路径中含有括号导致报错的可能性。

3、下载这两个软件之后,编辑环境变量时要验证环境变量的路径是不是正确的。(重要)

4、根据报错提示是说,找不到eclipse的swt库,于是下载了eclipse之后,spoon就能够打开了。

eclipse安装教程:最新,超详细,Eclipse安装使用教程! - 知乎

5、命令行提示输入 java -version和javac验证成功。javac也可以用javac.exe来验证。

javac.exe验证结果
用法: javac <options> <source files>
其中, 可能的选项包括:@<filename>                  从文件读取选项和文件名-Akey[=value]                传递给注释处理程序的选项--add-modules <模块>(,<模块>)*除了初始模块之外要解析的根模块; 如果 <module>为 ALL-MODULE-PATH, 则为模块路径中的所有模块。--boot-class-path <path>, -bootclasspath <path>覆盖引导类文件的位置--class-path <path>, -classpath <path>, -cp <path>指定查找用户类文件和注释处理程序的位置-d <directory>               指定放置生成的类文件的位置-deprecation                 输出使用已过时的 API 的源位置--enable-preview             启用预览语言功能。要与 -source 或 --release 一起使用。-encoding <encoding>         指定源文件使用的字符编码-endorseddirs <dirs>         覆盖签名的标准路径的位置-extdirs <dirs>              覆盖所安装扩展的位置-g                           生成所有调试信息-g:{lines,vars,source}       只生成某些调试信息-g:none                      不生成任何调试信息-h <directory>               指定放置生成的本机标头文件的位置--help, -help, -?            输出此帮助消息--help-extra, -X             输出额外选项的帮助-implicit:{none,class}       指定是否为隐式引用文件生成类文件-J<flag>                     直接将 <标记> 传递给运行时系统--limit-modules <模块>(,<模块>)*限制可观察模块的领域--module <模块>(,<模块>)*, -m <模块>(,<模块>)*只编译指定的模块,请检查时间戳--module-path <path>, -p <path>指定查找应用程序模块的位置--module-source-path <module-source-path>指定查找多个模块的输入源文件的位置--module-version <版本>        指定正在编译的模块版本-nowarn                      不生成任何警告-parameters                  生成元数据以用于方法参数的反射-proc:{none,only}            控制是否执行注释处理和/或编译。-processor <class1>[,<class2>,<class3>...]要运行的注释处理程序的名称; 绕过默认的搜索进程--processor-module-path <path>指定查找注释处理程序的模块路径--processor-path <path>, -processorpath <path>指定查找注释处理程序的位置-profile <profile>           请确保使用的 API 在指定的配置文件中可用--release <release>为指定的 Java SE 发行版编译。支持的发行版:7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18-s <directory>               指定放置生成的源文件的位置--source <release>, -source <release>提供与指定的 Java SE 发行版的源兼容性。支持的发行版:7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18--source-path <path>, -sourcepath <path>指定查找输入源文件的位置--system <jdk>|none          覆盖系统模块位置--target <release>, -target <release>生成适合指定的 Java SE 发行版的类文件。支持的发行版:7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18--upgrade-module-path <path>覆盖可升级模块位置-verbose                     输出有关编译器正在执行的操作的消息--version, -version          版本信息-Werror                      出现警告时终止编译
javac验证结果
用法: javac <options> <source files>
其中, 可能的选项包括:@<filename>                  从文件读取选项和文件名-Akey[=value]                传递给注释处理程序的选项--add-modules <模块>(,<模块>)*除了初始模块之外要解析的根模块; 如果 <module>为 ALL-MODULE-PATH, 则为模块路径中的所有模块。--boot-class-path <path>, -bootclasspath <path>覆盖引导类文件的位置--class-path <path>, -classpath <path>, -cp <path>指定查找用户类文件和注释处理程序的位置-d <directory>               指定放置生成的类文件的位置-deprecation                 输出使用已过时的 API 的源位置--enable-preview             启用预览语言功能。要与 -source 或 --release 一起使用。-encoding <encoding>         指定源文件使用的字符编码-endorseddirs <dirs>         覆盖签名的标准路径的位置-extdirs <dirs>              覆盖所安装扩展的位置-g                           生成所有调试信息-g:{lines,vars,source}       只生成某些调试信息-g:none                      不生成任何调试信息-h <directory>               指定放置生成的本机标头文件的位置--help, -help, -?            输出此帮助消息--help-extra, -X             输出额外选项的帮助-implicit:{none,class}       指定是否为隐式引用文件生成类文件-J<flag>                     直接将 <标记> 传递给运行时系统--limit-modules <模块>(,<模块>)*限制可观察模块的领域--module <模块>(,<模块>)*, -m <模块>(,<模块>)*只编译指定的模块,请检查时间戳--module-path <path>, -p <path>指定查找应用程序模块的位置--module-source-path <module-source-path>指定查找多个模块的输入源文件的位置--module-version <版本>        指定正在编译的模块版本-nowarn                      不生成任何警告-parameters                  生成元数据以用于方法参数的反射-proc:{none,only}            控制是否执行注释处理和/或编译。-processor <class1>[,<class2>,<class3>...]要运行的注释处理程序的名称; 绕过默认的搜索进程--processor-module-path <path>指定查找注释处理程序的模块路径--processor-path <path>, -processorpath <path>指定查找注释处理程序的位置-profile <profile>           请确保使用的 API 在指定的配置文件中可用--release <release>为指定的 Java SE 发行版编译。支持的发行版:7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18-s <directory>               指定放置生成的源文件的位置--source <release>, -source <release>提供与指定的 Java SE 发行版的源兼容性。支持的发行版:7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18--source-path <path>, -sourcepath <path>指定查找输入源文件的位置--system <jdk>|none          覆盖系统模块位置--target <release>, -target <release>生成适合指定的 Java SE 发行版的类文件。支持的发行版:7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18--upgrade-module-path <path>覆盖可升级模块位置-verbose                     输出有关编译器正在执行的操作的消息--version, -version          版本信息-Werror                      出现警告时终止编译

Kettle安装报错:Debug Exception in thread “main“ java.lang.NoClassDefFoundError解决方式相关推荐

  1. jar包不统一也会报错:Exception in thread main java.lang.NoClassDefFoundError

    一直在写json的例子,可是一直配不好环境,错误显示为Exception in thread "main" java.lang.NoClassDefFoundError: org/ ...

  2. mybatisplus代码生成报错:Exception in thread “main“ java.lang.NoClassDefFoundError: org/apache/velocity

    加上下面的依赖 <dependency><groupId>org.apache.velocity</groupId><artifactId>veloci ...

  3. hive启动报错:Exception in thread “main“ java.lang.NoSuchMethodError: com.google.common.base.Precondition

    报错如下 Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Precon ...

  4. 【Java】Kryo运行报错:Exception in thread “main“ java.lang.IllegalArgumentException:Class is not registered

    练习代码如下: import com.esotericsoftware.kryo.Kryo; import com.esotericsoftware.kryo.io.Input; import com ...

  5. 关于jar包运行报错:Exception in thread “main“ java.lang.UnsupportedClassVersionError的解决办法

    打包jar包后 ,在jar路径下cmd使用命令 java -jar  jar包名字 报错: Exception in thread "main" java.lang.Unsuppo ...

  6. Exception in thread main java.lang.NoClassDefFoundError解决了

    Exception in thread "main" java.lang.NoClassDefFoundError   这个问题解决了!现总结如下 由于我是用JBuilder编写的 ...

  7. 启动nacos报错:Exception in thread main java.lang.UnsupportedClassVersionError

    最近在做微服务项目的时候用到nacos,使用的版本分别是最新版nacos-server-2.0.2和nacos-server-1.4.2,但是在启动的时候报错了先看一下报错信息吧 报错信息: G:\n ...

  8. Hive报错:Exception in thread main java.lang.Incom。。。。 Class com.google.common.collect.ImmutableSotil

    Exception in thread "main" java.lang.IncompatibleClassChangeError: Class com.google.common ...

  9. 每日分享 环境报错:Exception in thread “main“ java.lang.RuntimeException: Cannot create staging directory

    Exception in thread "main" java.lang.RuntimeException: Cannot create staging directory 'hd ...

最新文章

  1. 打包、压缩、文件查找、通配符
  2. 针对Python中冒号的详细解释
  3. Linux内存释放脚本
  4. Windows五种IO模型性能分析和Linux五种IO模型性能分析
  5. windows+PHP+shell_exec()无法执行的原因
  6. 哪吒:猪八戒十年DevOps演进之路
  7. 收藏 | 北大华为鹏城联合首次提出视觉 Transformer 后量化算法!
  8. O(n)复杂度求没有出现的数字(leetcode448)
  9. (日常搬砖)数据集标注格式转换:txt转xml(VOC格式)
  10. 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_11、SpringBoot2.x目录文件结构讲解...
  11. Eye Tracking Methodology Theory and Practice, Third Edition
  12. android 代码混淆原理,Android 代码混淆
  13. CF528D. Fuzzy Search [FFT]
  14. xp安全模式下如何修复计算机,xp安全模式下怎么解决蓝屏_xp开机进入安全模式修复蓝屏教程...
  15. 天猫精灵家居对接第三方设备(详细版)
  16. flv格式转换为mp4(ffmpeg)
  17. 创宇滤镜|API防刷|短信邮件接口防刷|验证码防刷|搜索防刷 - 知道创宇云安全
  18. djfpvpdjfpvp耐高温计算机电缆,电缆DJFPVP DJFPVP耐高温计算机电缆
  19. 都用无线技术,差距咋就这么大呢
  20. Pandas中的轴向堆叠数据—concat()方法

热门文章

  1. Android中OnkeyDown()和OnBackPressed()
  2. springboot启动报错Error:Kotlin: Module was compiled with an incompatible version of Kotlin
  3. 智能手机陷入同质化,国产智能手机重新开启影像之战
  4. photoshop cs3 打开文件很慢的解决办法
  5. 8K电视和4K电视有什么区别
  6. Process的waitFor死锁问题及解决办法
  7. 《悟空传》中的经典句子及感想
  8. std::any用法示例
  9. 《青春依然,再见理想——献给学弟学妹》华中科技大学大四学生的万言忏悔书
  10. 淘宝如何实现用户与订单的绑定