kettle Redhat7连接资源库报错No more handles [MOZILLA_FIVE_HOME=''] (java.lang.UnsatisfiedLinkError: Could n

本文介绍在RedHat 7上运行Kettle 7.1时遇到的连接资源库错误及解决方法,通过安装和配置xulrunner解决了SWT库加载失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天把kettle7.1放到redhat7上运行,发现在连接资源库的时候会报一个错误,就是标题的错误。本来是想在windows上用kettle工具创建了一些job和trans打算迁移到linux上去执行,或者到任意机器上执行,突然想到这些kettle文件的还会存在迁移的问题,因为在job和trans文件里的数据库连接信息都是固定的,换了环境,这些数据库连接信息如何统一管理?是在kettle配置文件增加数据库连接变量,然后job和trans文件里都引用变量?是这样吗,

欢迎指教~~


言归正传,下面说一下标题的错误,灵感来于下面的文章,感谢~

http://blog.youkuaiyun.com/gongli109/article/details/8174755

错误信息:

2017/06/20 13:48:52 - org.pentaho.di.ui.util.EnvironmentUtils@75308740 - Caused by: java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
2017/06/20 13:48:52 - org.pentaho.di.ui.util.EnvironmentUtils@75308740 -        no swt-mozilla-gtk-4335 in java.library.path
2017/06/20 13:48:52 - org.pentaho.di.ui.util.EnvironmentUtils@75308740 -        no swt-mozilla-gtk in java.library.path
2017/06/20 13:48:52 - org.pentaho.di.ui.util.EnvironmentUtils@75308740 -        /root/.swt/lib/linux/x86_64/libswt-mozilla-gtk-4335.so: libxpcom.so: 无法打开共享对象文件: 没有那个文件或目>录
2017/06/20 13:48:52 - org.pentaho.di.ui.util.EnvironmentUtils@75308740 -        /root/.swt/lib/linux/x86_64/libswt-mozilla-gtk.so: libxpcom.so: 无法打开共享对象文件: 没有那个文件或目录
2017/06/20 13:48:52 - org.pentaho.di.ui.util.EnvironmentUtils@75308740 -
2017/06/20 13:48:52 - org.pentaho.di.ui.util.EnvironmentUtils@75308740 -        at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
2017/06/20 13:48:52 - org.pentaho.di.ui.util.EnvironmentUtils@75308740 -        at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
2017/06/20 13:48:52 - org.pentaho.di.ui.util.EnvironmentUtils@75308740 -        ... 13 more
2017/06/20 13:48:54 - Spoon - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : An unexpected error occurred in Spoon:
2017/06/20 13:48:54 - Spoon - No more handles [MOZILLA_FIVE_HOME=''] (java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
2017/06/20 13:48:54 - Spoon -   no swt-mozilla-gtk-4335 in java.library.path
2017/06/20 13:48:54 - Spoon -   no swt-mozilla-gtk in java.library.path
2017/06/20 13:48:54 - Spoon -   /root/.swt/lib/linux/x86_64/libswt-mozilla-gtk-4335.so: libxpcom.so: 无法打开共享对象文件: 没有那个文件或目录
2017/06/20 13:48:54 - Spoon -   /root/.swt/lib/linux/x86_64/libswt-mozilla-gtk.so: libxpcom.so: 无法打开共享对象文件: 没有那个文件或目录
2017/06/20 13:48:54 - Spoon - )
2017/06/20 13:48:54 - Spoon - ERROR (version 7.1.0.0-12, build 1 from 2017-05-16 17.18.02 by buildguy) : org.eclipse.swt.SWTError: No more handles [MOZILLA_FIVE_HOME=''] (java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
2017/06/20 13:48:54 - Spoon -   no swt-mozilla-gtk-4335 in java.library.path
2017/06/20 13:48:54 - Spoon -   no swt-mozilla-gtk in java.library.path
2017/06/20 13:48:54 - Spoon -   /root/.swt/lib/linux/x86_64/libswt-mozilla-gtk-4335.so: libxpcom.so: 无法打开共享对象文件: 没有那个文件或目录
poon - No more handles [MOZILLA_FIVE_HOME=''] (java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:



解决办法:

根据系统的版本,下载xulrunner
下载地址:
http://ftp.mozilla.org/pub/mozilla.org/xulrunner/nightly/2012/03/2012-03-02-03-32-11-mozilla-1.9.2/xulrunner-1.9.2.28pre.en-US.linux-x86_64.tar.bz2?cm_mc_uid=08168416471414670141294&cm_mc_sid_50200000=1497942238
或者
http://ftp.mozilla.org/pub/xulrunner/releases/latest/sdk/


得到一个这样的文件:xulrunner-1.9.2.28pre.en-US.linux-x86_64.tar解压一下


//注册一下xulrunner
./xulrunner –register-global


重启一下kettle程序,再试connect,可以了。





### Kettle 连接 Oracle 数据库时 XulException 异常解决方案 当使用 Kettle 新建数据库连接并尝试连接到 Oracle 时,如果遇到 `org.pentaho.ui.xul.XulException: java.lang.reflect.InvocationTargetException` 错误,通常表明存在环境配置方面的问题。 #### JDK 版本不兼容 错误的根本原因可能是由于使用的 Java Development Kit (JDK) 版本与 Kettle 不兼容。有报告指出,在某些情况下,Kettle 对特定版本的 JDK 存在依赖关系[^2]。具体来说,较新的 JDK 版本(如 JDK 11)可能无法完全支持旧版 Kettle 的功能需求;相反,切换至 JDK 1.8 可能会解决问题。 为了验证这一点,建议检查当前安装的 JDK 版本,并考虑将其降级为 JDK 1.8 来测试是否可以消除该异常。可以通过命令行工具来确认已安装的 JDK 版本: ```bash java -version ``` #### 配置文件调整 除了确保正确的 JDK 版本外,还需要仔细审查 Kettle 安装目录下的配置文件,特别是那些涉及 JDBC 驱动程序路径设置的部分。对于 Oracle 数据库而言,这通常意味着要正确指定 ojdbc.jar 文件的位置以及任何必要的参数。 另外,还需注意操作系统的防火墙或安全软件可能会阻止应用程序访问网络资源,从而间接引发此类异常。因此,适当放宽这些限制也可能有助于问题的解决。 #### 日志分析 通过查看详细的日志记录可以帮助进一步诊断问题所在。可以从 Kettle 启动过程中产生的日志文件入手寻找线索,尤其是关注是否有其他伴随发生的错误提示。例如,SQL Server JDBC 驱动中的错误处理函数被调用的情况就值得留意[^3]。同样地,XUL 组件内部的方法调用失败也可能是触发因素之一[^4]。 综上所述,针对上述提到的现象采取相应措施后应该能够有效缓解甚至彻底根除此异常现象的发生。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Buty9147

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值