一、环境说明
操作系统版本: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版本也未能测试多个版本,不确定其他版本是否可用;
其他问题欢迎反馈。