一、環境說明
作業系統版本: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版本也未能測試多個版本,不確定其他版本是否可用;
其他問題歡迎反饋。