运行代码报libXrender.so.1: cannot open shared object file: No such file or directory

最近一个老项目要部署到另外一个环境,因为jdk,tomcat都是一样的,操作系统从window service 8 r2换到ubuntu14.04环境。其他的功能都正常(鬼知道还有哪个坑),结果发现验证码不好使了。然后从后台发现,居然是ImageIO的类报错了。提示java.lang.UnsatisfiedLinkError libXrender.so.1: cannot open shared object file: No such file or directory

为了测试方便,特意写了一个ImageIOTest.java的测试类

import javax.imageio.ImageIO;

public class ImageIOTest{
     static {
          ImageIo.scanForPlugins();
    }  

    public static void main(String[] args){
          System.out.println("ImageIOTest");
    }

}

然后执行javac ImageIOTest.java

编译通过后执行java ImageIOTest 发现依然报错了。但是自己的电脑上运行,是可以的(我个人的电脑是win10 64x),这下就不能理解了。难道window的jdk和ubuntu的jdk还有区别?因为除了操作系统不一样,其他的情况是一致的,开始以为是操作系统导致的问题,但是发现另外一个ubuntu 居然是可以的。(一脸懵逼了)。这下可以排除jdk问题了,

然后各种网上找资料。开始以为是ubuntu缺少so文件,然后准备去下载,突然看到一个情况,说可能是因为XShell的问题。。(贴出原来地址:

tomcat启动过程中报libXrender.so.1: cannot open shared object file: No such file or directory)

然后就抱着试一试的心态,按照上面说的,去掉对应的设置,重新执行java ImageIOTest后,正常了。果然是这个问题~~因为上面说的是这个配置默认增加了1个环境变量的配置,所以项目是否要重启,于是继续抱着试一试的心态,将服务停了后,断开连接,在重连,启动tomcat后,图片果然加载出来了~~

猜你喜欢

转载自www.cnblogs.com/crazytree/p/9176201.html