MacOS安装使用Kettle
一、环境说明
操作系统版本: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版本也未能测试多个版本,不确定其他版本是否可用;
其他问题欢迎反馈。
四、参考资料
MacOS安装使用Kettle的更多相关文章
- macOS 安装 Java (Homebrew)
macOS 安装多个 Java 版本 Homebrew 是 macOS 下的一个非常好用的包管理工具, caskroom 则是基于 Homebrew 构建的一个强大的应用程序管理器. Homebrew ...
- macOS 安装 ctags
macOS 安装 ctags macOS 自带一个 ctags,但是不支持 -R 参数,递归产生tags文件 $ ctags -R --exclude=.git --exclude=log * cta ...
- MacOs 安装cordova报无权访问题解决方案
在MacOS安装cordova后,执行cordova -v报错: Error: EACCES: permission denied, open '/Users/jianuonuo/.config/co ...
- macOS 安装 Docker
系统要求 Docker for Mac 要求系统最低为 macOS 10.10.3 Yosemite,或者 2010 年以后的 Mac 机型,准确说是带 Intel MMU 虚拟化的,最低 4GB 内 ...
- macOS 安装配置yaf框架 生成yaf项目
macOS 安装配置yaf框架 Yaf只支持PHP5.2及以上的版本. 并支持最新的PHP5.3.3 Yaf需要SPL的支持. SPL在PHP5中是默认启用的扩展模块 Yaf需要PCRE的支持. PC ...
- MacOS安装Docker傻瓜式教程
最近电脑越来越卡了,为了减少系统开销,以及后期维护方便,所以考虑将本地安装一些服务迁移到docker中去管理,这一切的基础是要先有docker服务,所以本文就先记录怎样在mac上安装配置docker, ...
- 苹果 macOS 安装 Source Code Pro
1. 下载 到 Source Code Pro 的 GitHub 官网下载:https://github.com/adobe-fonts/source-code-pro 点击 GitHub 中 ...
- macOS 安装 Docker Desktop CE(转)
现在基本上都使用docker进行部署项目,所以还是有必要学习下,关于docker的简介这里就不在描述,本文转载自https://yeasy.gitbooks.io/docker_practice/co ...
- macOS安装Python MySQLdb
macOS安装Python MySQLdb 0. 参考 Mac OS X - EnvironmentError: mysql_config not found 1. 背景 import MySQLdb ...
随机推荐
- Stream 流
Stream流(接口不是函数接口) 描述 在java.1.8中,由于 lambda表达式这种函数编程jdk引入了一个全新的改变Stream流它是用来解决已有集合类库的一些弊端的. Stream是jav ...
- 38KHz,NEC红外模拟发送和接收程序
/*************************************************************************************************/ ...
- 利用 g4l 完整备份和还原Linux系统
前言: 1.Windows中Ghost由于一系列原因,有不支持分区格式,因此可能无法完整备份Linux. 2.g4l = Ghost for Linux 1.下载g4l https://sourcef ...
- Dede后台广告管理模块增加图片上传功能插件
用户问题:网站广告后台管理非常方便,但是织梦后台的广告管理模块,发布广告时图片没有上传选项,只能用URL地址,很不方便,那么织梦帮就教大家一个方法实现广告图片后台直接上传,非常方便.先给大家看下修改后 ...
- (转载)深入理解MDL元数据锁
作者:MySQL技术本文为作者原创,转载请注明出处:https://www.cnblogs.com/kunjian/p/11993708.html 前言: 当你在MySQL中执行一条SQL时,语句并没 ...
- Python中类-带括号与不带括号的区别
类不带括号我们叫赋值,带括号我们叫实例化. 什么是赋值? a=7 b=a id(7) 140726814208448 id(a) 140726814208448 id(b) 1407268142084 ...
- DeDeCMS v5.7 漏洞复现
DedeCMS V5.7 漏洞复现 XSS漏洞 首先我们在首页要进行用户的注册以及登录 这里我们已经提前注册过了,登录即可 普通用户账号密码:root/passwd 管理员账号密码:admin/pik ...
- 经典软件测试面试题目:Android 和 ios 测试区别?这样回答:稳!
Android 和 ios 测试区别? App 测试中 ios 和 Android 有哪些区别呢?1.Android 长按 home 键呼出应用列表和切换应用,然后右滑则终止应用:2.多分辨率测试, ...
- Python3入门系列之-----算术运算符|比较运算符|赋值运算符|逻辑运算符|成员运算符|身份运算符
什么是运算符? 本章节主要说明Python的运算符.举个简单的例子 1 +2 = 3 . 例子中,1 和 1.2 被称为操作数,"+" 称为运算符. Python语言支持以下类型的 ...
- IdentityServer4[1]:开篇
1.开篇 首先明确一点,文章只是学习过程的笔记,参考目前网络上的博客,主要便于自己加深理解,同时也督促自己持续学习,没有其他目的.感谢网上资源的提供者. IdentityServer是为ASP.NET ...