最近一個老項目要部署到另外一個環境,因為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后,圖片果然加載出來了~~