2013-11-26 137 views
0

我是新的Java,我尝试调整图像大小。Java加载图像到缓冲区

当我试图在缓冲区中使用此代码加载图像:

File file = new File(fileName); 
BufferedImage image = ImageIO.read(file); 

系统已经抛出此异常:

javax.servlet.ServletException: Servlet execution threw an exception 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) 
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) 
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) 
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394) 

root cause 

java.lang.UnsatisfiedLinkError: /usr/lib/jvm/jdk1.7.0_45/jre/lib/i386/xawt/libmawt.so:  libXtst.so.6: cannot open shared object file: No such file or directory 
java.lang.ClassLoader$NativeLibrary.load(Native Method) 
java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965) 
java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890) 
java.lang.ClassLoader.loadLibrary(ClassLoader.java:1851) 
java.lang.Runtime.load0(Runtime.java:795) 
java.lang.System.load(System.java:1062) 
java.lang.ClassLoader$NativeLibrary.load(Native Method) 
java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965) 
java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890) 
java.lang.ClassLoader.loadLibrary(ClassLoader.java:1872) 
java.lang.Runtime.loadLibrary0(Runtime.java:849) 
java.lang.System.loadLibrary(System.java:1088) 
sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:67) 
sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:47) 
java.security.AccessController.doPrivileged(Native Method) 
java.awt.Toolkit.loadLibraries(Toolkit.java:1646) 
java.awt.Toolkit.<clinit>(Toolkit.java:1668) 
sun.awt.AppContext$2.run(AppContext.java:271) 
sun.awt.AppContext$2.run(AppContext.java:260) 
java.security.AccessController.doPrivileged(Native Method) 
sun.awt.AppContext.initMainAppContext(AppContext.java:260) 
sun.awt.AppContext.access$200(AppContext.java:133) 
sun.awt.AppContext$3.run(AppContext.java:314) 
sun.awt.AppContext$3.run(AppContext.java:298) 
java.security.AccessController.doPrivileged(Native Method) 
sun.awt.AppContext.getAppContext(AppContext.java:297) 
javax.imageio.spi.IIORegistry.getDefaultInstance(IIORegistry.java:154) 
javax.imageio.ImageIO.<clinit>(ImageIO.java:65) 
andreacatania.Load.doGet(Load.java:45) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176) 
org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145) 
org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92) 
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394) 

我的Linux系统上(Ubuntu的13.04 64位)和这个脚本运行在简单的tomcat servlet上,我已经看到了关于它的其他问题,但我认为问题出在VM上。

你有什么想法吗? ..非常感谢,我希望在回应 最好的问候Andrea

+0

这似乎是你的jdk是不正确的。尝试使用'apt-get install'重新安装jdk。并使用默认的JDK上的ubuntu – lichengwu

+0

可能的重复[无法找到/安装libXtst.so.6?](http://stackoverflow.com/questions/17355863/cant-find-install-libxtst-so-6) – Bludzee

回答

0

你有你的系统上安装库libXtst?

$ locate libXtst 

如果不是这样,在终端执行此:

$ sudo apt-get update 
$ sudo apt-get install libxtst6 

然后再试一次。

+0

是的,它已经安装。我可以尝试重新安装JDK吗? –

+1

我认为这不会改变任何东西。 – Bludzee

+0

那么,我该怎么办?因为这个库已经安装.. –

0

我有这个解决它:

sudo apt-get install libxtst6:i386 
+1

我很高兴这解决了你的问题。不要忘记标记你的问题已解决(选择你的答案)。 – Bludzee