Kettle安装报错:Debug Exception in thread “main“ java.lang.NoClassDefFoundError解决方式
标题: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解决方式相关推荐
- jar包不统一也会报错:Exception in thread main java.lang.NoClassDefFoundError
一直在写json的例子,可是一直配不好环境,错误显示为Exception in thread "main" java.lang.NoClassDefFoundError: org/ ...
- mybatisplus代码生成报错:Exception in thread “main“ java.lang.NoClassDefFoundError: org/apache/velocity
加上下面的依赖 <dependency><groupId>org.apache.velocity</groupId><artifactId>veloci ...
- 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 ...
- 【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 ...
- 关于jar包运行报错:Exception in thread “main“ java.lang.UnsupportedClassVersionError的解决办法
打包jar包后 ,在jar路径下cmd使用命令 java -jar jar包名字 报错: Exception in thread "main" java.lang.Unsuppo ...
- Exception in thread main java.lang.NoClassDefFoundError解决了
Exception in thread "main" java.lang.NoClassDefFoundError 这个问题解决了!现总结如下 由于我是用JBuilder编写的 ...
- 启动nacos报错:Exception in thread main java.lang.UnsupportedClassVersionError
最近在做微服务项目的时候用到nacos,使用的版本分别是最新版nacos-server-2.0.2和nacos-server-1.4.2,但是在启动的时候报错了先看一下报错信息吧 报错信息: G:\n ...
- 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 ...
- 每日分享 环境报错:Exception in thread “main“ java.lang.RuntimeException: Cannot create staging directory
Exception in thread "main" java.lang.RuntimeException: Cannot create staging directory 'hd ...
最新文章
- 打包、压缩、文件查找、通配符
- 针对Python中冒号的详细解释
- Linux内存释放脚本
- Windows五种IO模型性能分析和Linux五种IO模型性能分析
- windows+PHP+shell_exec()无法执行的原因
- 哪吒:猪八戒十年DevOps演进之路
- 收藏 | 北大华为鹏城联合首次提出视觉 Transformer 后量化算法!
- O(n)复杂度求没有出现的数字(leetcode448)
- (日常搬砖)数据集标注格式转换:txt转xml(VOC格式)
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_11、SpringBoot2.x目录文件结构讲解...
- Eye Tracking Methodology Theory and Practice, Third Edition
- android 代码混淆原理,Android 代码混淆
- CF528D. Fuzzy Search [FFT]
- xp安全模式下如何修复计算机,xp安全模式下怎么解决蓝屏_xp开机进入安全模式修复蓝屏教程...
- 天猫精灵家居对接第三方设备(详细版)
- flv格式转换为mp4(ffmpeg)
- 创宇滤镜|API防刷|短信邮件接口防刷|验证码防刷|搜索防刷 - 知道创宇云安全
- djfpvpdjfpvp耐高温计算机电缆,电缆DJFPVP DJFPVP耐高温计算机电缆
- 都用无线技术,差距咋就这么大呢
- Pandas中的轴向堆叠数据—concat()方法
热门文章
- Android中OnkeyDown()和OnBackPressed()
- springboot启动报错Error:Kotlin: Module was compiled with an incompatible version of Kotlin
- 智能手机陷入同质化,国产智能手机重新开启影像之战
- photoshop cs3 打开文件很慢的解决办法
- 8K电视和4K电视有什么区别
- Process的waitFor死锁问题及解决办法
- 《悟空传》中的经典句子及感想
- std::any用法示例
- 《青春依然,再见理想——献给学弟学妹》华中科技大学大四学生的万言忏悔书
- 淘宝如何实现用户与订单的绑定