找不到BufferedImage这个Class的解决方法
环境:
[1]RedHat AS5 64位
[2]WebSphere6.0 32位版本
正文:
发现原来在RedHat AS4 32位系统上跑的程序不能在64位RedHat AS5中运行。
系统报java.awt.image.bufferedImage这个Class找不到。在Sun
JDK 1.5平台中,该类在rt.jar包中,但是在IBM JDK1.4.2平台中
该类在graphics.jar包中。
在WebSphere管理器中为应用程序添加共享库,在共享库中添加
graphics.jar包的路径(包括名称),然后把该共享库添加到应用程序中。
程序还是不能运行,提示没有找到libXmu.so.6 使用rpm -qa|grep libXmu*
命令,发现系统中存在libXmu,再使用find命令把它找出来,发现它是个64位
so库,于是从网上找来libXmu-1.0.4-1.fc9.i386.rpm安装上去,然后使用
ln -s命令软链接到WebSphere的[这里省略]/WebSphere/AppServer/java/jre/bin
目录,使graphics.jar间接能够在这个目录中定位到libXmu.so.6这个文件。
类似方式安装libXp-1.0.0-11.fc9.i386.rpm这个包,在bin目录中建立软件链接
libXp.so.6,使这个链接指向新装的32位so库中。重启WebSphere问题解决。
备注:
发生错误后,只有重启WebSphere才能看到新的修改(包括添加so库)产生的影响,否则老是提示旧的错误信息。
或则是只提示,找不到BufferedImage的定义。
附:
[1]常用的命令
查找文件:
find / - name [待找的文件]
查找已安装的包
rpm -qa | grep [包的名称]
安装包
rpm -ivh [待装rpm包的名称]
软链接
ln -s [源文件] [目标文件]
删除软链接
rm -rf [待删除文件]
[2]依赖包可以从以下位置下载
http://rpm.pbone.net/index.php3/stat/4/idpl/13658153/dir/fedora_9/com/libXmu-1.0.4-1.fc9.i386.rpm.html