Spoon软件运行时点击右键程序无响应的解决方法

问题描述

背景:Kettle8.2版本,可以正常启动,右键转换出现卡死,程序无响应问题

解决后效果图如下,未解决前对DB连接右键就会未响应

JDK版本不对

解决方法一:

查看JDK版本方法:WIN+R----->cmd----->java -version

修改本机JDK环境为1.8

因为运行Kettle 7.0以上版本JDK必须为1.8及以上(在多次实践中发现,JDK9和JDK10使用起来并不稳定,这里强烈推荐使用JDK1.8,否则在后期使用过程中会出现非常多莫名奇妙的错误)

解决方法二:

给Kettle 7.0 单独设置1.8环境
1.将jdk1.8放到Kettle 7.0 的根目录

2.用编辑器打开Kettle 根目录下的 spoon.batLinux下为spoon.sh

3.插入以下代码,重启Kettle

set JAVA_HOME=%cd%/jdk1.8.0_92
set PENTAHO_JAVA_HOME=%JAVA_HOME%

在这里插入图片描述

电脑硬件配置太低

修改一下spoon.batLinux下为spoon.sh里内存配置:

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=256m"

改为

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms512m" "-Xmx512m" "-XX:MaxPermSize=256m"

即修改-Xms,-Xmx值,修改之后保存,重新启动spoon.bat

总结

1) 参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;
2) -Xmx的值和-XX:MaxPermSize的总和 超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。

看起来,是由于本机内存被占用过多,而JVM参数设置过大,导致JVM无法启动,故spoon.bat运行后,Kettle无法启动

JVM(java虚拟机)相关概念

1) 堆(Heap)和非堆(Non-heap)内存

JVM主要管理两种类型的内存: 堆和非堆。
简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非堆就是JVM留给自己用的,

2) JVM的几个参数:

-Xms2058m JVM初始分配的堆内存
-Xmx1024m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=128M JVM初始分配的非堆内存
-XX:MaxPermSize=256M JVM最大允许分配的非堆内存,按需分配

3) Xms Xmx PermSize MaxPermSize 区别

可参考该博主 @残星 博文:https://www.cnblogs.com/mingforyou/archive/2012/03/03/2378143.html

猜你喜欢

转载自blog.csdn.net/qq_43961619/article/details/120044444
今日推荐