关于Pentaho(Kettle)在AIX上启动报错的问题

英年有点儿肥 发布于 2016/07/15 11:15
阅读 568
收藏 0

操作系统:AIX

JDK:1.6

Kettle版本:data-integration 4.2

JDK环境已经配好,执行spoon.sh启动的时候,报如下的错误:

java.lang.UnsatisfiedLinkError: no swt-motif-3346 or swt-motif in swt.library.path, java.library.path or the jar file

同样的Kettle文件,放到ubuntu上面执行,就没问题,ubuntu也是JDK1.6。

基本已经确认libswt/aix/这个目录下的swt.jar有问题了,但是google很长世间仍没找到解决办法;各位有遇到过同样的问题吗?倒是google到一个在solaris上面遇到同样的问题,不过那个哥们也没解决。

spoon.sh的内容如下:

#!/bin/sh

# **************************************************
# ** Set these to the location of your mozilla
# ** installation directory.  Use a Mozilla with
# ** Gtk2 and Fte enabled.
# **************************************************

# set MOZILLA_FIVE_HOME=/usr/local/mozilla
# set LD_LIBRARY_PATH=/usr/local/mozilla

# Try to guess xulrunner location - change this if you need to
MOZILLA_FIVE_HOME=$(find /usr/lib -maxdepth 1 -name xulrunner-[0-9]* | head -1)
LD_LIBRARY_PATH=${MOZILLA_FIVE_HOME}:${LD_LIBRARY_PATH}
export MOZILLA_FIVE_HOME LD_LIBRARY_PATH

# Fix for GTK Windows issues with SWT
export GDK_NATIVE_WINDOWS=1

# **************************************************
# ** Init BASEDIR                                 **
# **************************************************

BASEDIR=`dirname $0`
cd $BASEDIR
DIR=`pwd`
cd -

. "$DIR/set-pentaho-env.sh"

setPentahoEnv

# **************************************************
# ** Platform specific libraries ...              **
# **************************************************

LIBPATH="NONE"
STARTUP="-jar launcher/launcher.jar"

case `uname -s` in 
	AIX)
		LIBPATH=$BASEDIR/../libswt/aix/
		;;

	SunOS) 
		LIBPATH=$BASEDIR/../libswt/solaris/
		;;

	Darwin)
		echo "Starting Data Integration using 'Spoon.sh' from OS X is not supported."
		echo "Please start using 'Data Integration 32-bit' or"
		echo "'Data Integration 64-bit' as appropriate."
		exit
		;;

	Linux)
	    ARCH=`uname -m`
		case $ARCH in
			x86_64)
				if $($_PENTAHO_JAVA -version 2>&1 | grep "64-Bit" > /dev/null )
                                then
				  LIBPATH=$BASEDIR/../libswt/linux/x86_64/
                                else
				  LIBPATH=$BASEDIR/../libswt/linux/x86/
                                fi
				;;

			i[3-6]86)
				LIBPATH=$BASEDIR/../libswt/linux/x86/
				;;

			ppc)
				LIBPATH=$BASEDIR/../libswt/linux/ppc/
				;;

			*)	
				echo "I'm sorry, this Linux platform [$ARCH] is not yet supported!"
				exit
				;;
		esac
		;;

	FreeBSD)
	    ARCH=`uname -m`
		case $ARCH in
			x86_64)
				LIBPATH=$BASEDIR/../libswt/freebsd/x86_64/
				echo "I'm sorry, this Linux platform [$ARCH] is not yet supported!"
				exit
				;;

			i[3-6]86)
				LIBPATH=$BASEDIR/../libswt/freebsd/x86/
				;;

			ppc)
				LIBPATH=$BASEDIR/../libswt/freebsd/ppc/
				echo "I'm sorry, this Linux platform [$ARCH] is not yet supported!"
				exit
				;;

			*)	
				echo "I'm sorry, this Linux platform [$ARCH] is not yet supported!"
				exit
				;;
		esac
		;;

	HP-UX) 
		LIBPATH=$BASEDIR/../libswt/hpux/
		;;
	CYGWIN*)
		./Spoon.bat
		exit
		;;

	*) 
		echo Spoon is not supported on this hosttype : `uname -s`
		exit
		;;
esac 

export LIBPATH

# ******************************************************************
# ** Set java runtime options                                     **
# ** Change 512m to higher values in case you run out of memory   **
# ** or set the PENTAHO_DI_JAVA_OPTIONS environment variable      **
# ******************************************************************

if [ -z "$PENTAHO_DI_JAVA_OPTIONS" ]; then
    PENTAHO_DI_JAVA_OPTIONS="-Xmx512m"
fi

OPT="$OPT $PENTAHO_DI_JAVA_OPTIONS -Djava.library.path=$LIBPATH -DKETTLE_HOME=$KETTLE_HOME -DKETTLE_REPOSITORY=$KETTLE_REPOSITORY -DKETTLE_USER=$KETTLE_USER -DKETTLE_PASSWORD=$KETTLE_PASSWORD -DKETTLE_PLUGIN_PACKAGES=$KETTLE_PLUGIN_PACKAGES -DKETTLE_LOG_SIZE_LIMIT=$KETTLE_LOG_SIZE_LIMIT"

# ***************
# ** Run...    **
# ***************
"$_PENTAHO_JAVA" $OPT $STARTUP -lib $LIBPATH "${1+$@}"


加载中
0
huan
huan
能否另找个swt for AIX的jar包换上? 另外,为啥要在AIX上运行spoon呢,一般只用在服务器上跑server就可以了吧,任务定制可以在其他pc上做。server运行即可。
返回顶部
顶部