一、环境说明

操作系统版本:macOS Big Sur 11.6.1

机型:Intel版本

JDK版本:Amazon Corretto-openjdk8

Kettle版本:Kettle8、9

二、问题说明

jdk是直接下载的pkg包安装完成,终端输入java -version后可以正常查询到jdk版本;

直接运行“Data Integration”或者终端运行“spoon.sh”均打开等待一段时间后闪退,查看log文件报错如下(隐藏部分具体错误说明):

org.pentaho.ui.xul.XulException: java.lang.NullPointerException
at org.pentaho.ui.xul.impl.AbstractXulLoader.loadXul(AbstractXulLoader.java:135)
at org.pentaho.ui.xul.swt.SwtXulLoader.loadXul(SwtXulLoader.java:128)
at org.pentaho.ui.xul.swt.SwtXulLoader.loadXul(SwtXulLoader.java:122)
...
Caused by: java.lang.NullPointerException
at org.eclipse.swt.widgets.Control.internal_new_GC(Unknown Source)
at org.eclipse.swt.graphics.GC.<init>(Unknown Source)
at org.eclipse.swt.graphics.GC.<init>(Unknown Source)
...
... 26 more
org.pentaho.di.core.exception.KettlePluginException:
Unexpected error loading class:
java.lang.NullPointerException at org.pentaho.di.core.plugins.PluginRegistry.loadClass(PluginRegistry.java:503)
at org.pentaho.di.core.plugins.PluginRegistry.loadClass(PluginRegistry.java:340)
...
Caused by: org.pentaho.ui.xul.XulException: java.lang.NullPointerException
at org.pentaho.ui.xul.impl.AbstractXulLoader.loadXul(AbstractXulLoader.java:135)
at org.pentaho.ui.xul.swt.SwtXulLoader.loadXul(SwtXulLoader.java:128)
...
... 15 more
Caused by: java.lang.NullPointerException
at org.eclipse.swt.widgets.Control.internal_new_GC(Unknown Source)
at org.eclipse.swt.graphics.GC.<init>(Unknown Source)
at org.eclipse.swt.graphics.GC.<init>(Unknown Source)
at org.eclipse.swt.widgets.Table.setScrollWidth(Unknown Source)
...
... 26 more

更换kettle版本或者更换jdk为zulu jdk8依然不能解决问题,通过查询资料并验证,解决方案如下:

三、解决方案

3.1JDK

JDK必须使用Oracle的JDK1.8.0_202版本。

JDK可以通过官网查询下载,这里给出百度网盘链接

百度网盘链接: https://pan.baidu.com/s/1wwnoeYwrinQbialUcUYlYA 提取码: wyey

保险期间请手动配置环境变量。

如果之前有安装其他JDK,建议彻底删除,删除命令如下(请在终端执行):

sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
sudo rm -rf /Library/PreferencesPanes/JavaControlPanel.prefpane
sudo rm -rf /Library/Java/JavaVirtualMachines/*

清理干净后,安装下载jdk1.8.0_202版本,然后根据一下命令配置环境:

# 确保在根目录
cd ~
# vi打开配置文件
vi .bash_profile # 在配置文件末尾增加如下代码(在待插入位置按一下i键进入编辑模式)
#JAVA
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH # 添加完成后报错退出(按ESC退出编辑模式,输入":wq"保存退出)
# 刷新配置文件
source .bash_profile
3.2Kettle

测试几个版本都无法使用,先给出经测试后可用的版本下载地址:

官方链接:https://udomain.dl.sourceforge.net/project/pentaho/Pentaho 9.1/client-tools/pdi-ce-9.1.0.0-324.zip
百度网盘链接:https://pan.baidu.com/s/1ltrZjQDRR2hSrnQO3Qfl_Q   提取码:uk6c

下载完成后直接解压,然后拖动“spoon.sh”文件到终端窗口,回车即可运行。

3.3其他

仅测试了Intel机型苹果系统,未测试M1机型,不见得可用;

Kettle版本也未能测试多个版本,不确定其他版本是否可用;

其他问题欢迎反馈。

四、参考资料

https://blog.csdn.net/ManWZD/article/details/109953243

MacOS安装使用Kettle的更多相关文章

  1. macOS 安装 Java (Homebrew)

    macOS 安装多个 Java 版本 Homebrew 是 macOS 下的一个非常好用的包管理工具, caskroom 则是基于 Homebrew 构建的一个强大的应用程序管理器. Homebrew ...

  2. macOS 安装 ctags

    macOS 安装 ctags macOS 自带一个 ctags,但是不支持 -R 参数,递归产生tags文件 $ ctags -R --exclude=.git --exclude=log * cta ...

  3. MacOs 安装cordova报无权访问题解决方案

    在MacOS安装cordova后,执行cordova -v报错: Error: EACCES: permission denied, open '/Users/jianuonuo/.config/co ...

  4. macOS 安装 Docker

    系统要求 Docker for Mac 要求系统最低为 macOS 10.10.3 Yosemite,或者 2010 年以后的 Mac 机型,准确说是带 Intel MMU 虚拟化的,最低 4GB 内 ...

  5. macOS 安装配置yaf框架 生成yaf项目

    macOS 安装配置yaf框架 Yaf只支持PHP5.2及以上的版本. 并支持最新的PHP5.3.3 Yaf需要SPL的支持. SPL在PHP5中是默认启用的扩展模块 Yaf需要PCRE的支持. PC ...

  6. MacOS安装Docker傻瓜式教程

    最近电脑越来越卡了,为了减少系统开销,以及后期维护方便,所以考虑将本地安装一些服务迁移到docker中去管理,这一切的基础是要先有docker服务,所以本文就先记录怎样在mac上安装配置docker, ...

  7. 苹果 macOS 安装 Source Code Pro

    1. 下载     到 Source Code Pro 的 GitHub 官网下载:https://github.com/adobe-fonts/source-code-pro 点击 GitHub 中 ...

  8. macOS 安装 Docker Desktop CE(转)

    现在基本上都使用docker进行部署项目,所以还是有必要学习下,关于docker的简介这里就不在描述,本文转载自https://yeasy.gitbooks.io/docker_practice/co ...

  9. macOS安装Python MySQLdb

    macOS安装Python MySQLdb 0. 参考 Mac OS X - EnvironmentError: mysql_config not found 1. 背景 import MySQLdb ...

随机推荐

  1. Defence

      emm...这道题我调了一下午你敢信??   好吧还是我太天真了.   开始的时候以为自己线段树动态开点与合并写错了,就调;   结果发现没问题,那就是信息维护错了.   一开始以为自己最左右的1 ...

  2. C语言中volatile、register、const、static、extern、 auto关键字的作用

    一.volatile详解 volatile的本意是"易变的" 因为访问寄存器要比访问内存单元快的多,所以编译器一般都会作减少存取内存的优化,但有可能会读脏数据.当要求使用volat ...

  3. Nginx:常用基本命令与异常处理

    Nginx日志 - ./nginx-1.6.0-ems/logs/nginx.pid Nginx启动时应该使用cmd等命令行工具启动,双击启动同样会产生进程但会造成异常,判断条件是 ./nginx-1 ...

  4. 数据导出生成Excel附件使用POI的HSSFWorkbook对象

    比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel.Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组 ...

  5. lua中的sleep实现

    这篇文章主要介绍了Lua中实现sleep函数功能的4种方法,本文讲解了在一个死循环中设置一个跳出条件方法.调用系统的sleep函数法.Windows下ping命令法.socket库中select函数法 ...

  6. 机器学习——逻辑回归(Logistic Regression)

    1 前言 虽然该机器学习算法名字里面有"回归",但是它其实是个分类算法.取名逻辑回归主要是因为是从线性回归转变而来的. logistic回归,又叫对数几率回归. 2 回归模型 2. ...

  7. 一文梳理清楚mysql各种锁

    全局锁: 1.FTWRL(读锁) 用于做全库的逻辑备份 加锁:FLUSH TABLES WITH READ LOCK 解锁:unlock tables 表级锁: 1.表锁 表锁的读锁和写锁 加锁:lo ...

  8. openFeign夺命连环9问,这谁受得了?

    1.前言 前面介绍了Spring Cloud 中的灵魂摆渡者Nacos,和它的前辈们相比不仅仅功能强大,而且部署非常简单. 今天介绍一款服务调用的组件:OpenFeign,同样是一款超越先辈(Ribb ...

  9. pycharm 增删改查 mysql数据库

    1.pycharm创建mysql数据表######################################################import pymysql# 创建连接con = p ...

  10. 鸿蒙内核源码分析(进程镜像篇)|ELF是如何被加载运行的? | 百篇博客分析OpenHarmony源码 | v56.01

    百篇博客系列篇.本篇为: v56.xx 鸿蒙内核源码分析(进程映像篇) | ELF是如何被加载运行的? | 51.c.h.o 加载运行相关篇为: v51.xx 鸿蒙内核源码分析(ELF格式篇) | 应 ...