问题
在xshell中执行java项目报错。java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the val
Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.access$200(X11GraphicsEnvironment.java:65)
at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:115)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:74)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:103)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:82)
at org.icepdf.core.pobjects.fonts.ofont.Font.<clinit>(Font.java:90)
at org.icepdf.core.pobjects.fonts.FontFactory.getFont(FontFactory.java:126)
at org.icepdf.core.util.Parser.getObject(Parser.java:435)
at org.icepdf.core.util.LazyObjectLoader.loadObject(LazyObjectLoader.java:73)
at org.icepdf.core.util.Library.getObject(Library.java:167)
at org.icepdf.core.pobjects.Resources.getFont(Resources.java:140)
at org.icepdf.core.util.content.AbstractContentParser.consume_Tf(AbstractContentParser.java:805)
at org.icepdf.core.util.content.OContentParser.parseText(OContentParser.java:799)
at org.icepdf.core.util.content.OContentParser.parse(OContentParser.java:183)
at org.icepdf.core.pobjects.Page.init(Page.java:403)
at org.icepdf.core.pobjects.Document.getPageImage(Document.java:1144)
at org.apache.pdfbox.example.PDFTest.pdf2Pic(PDFTest.java:31)
at org.apache.pdfbox.example.PDFTest.main(PDFTest.java:54)
原因
因为用到了图形处理,java程序会去寻找linux上的图形界面是否启动
解决
方法1:关闭xshell转发X11连接(设置完以后记得要重新打开一个窗口)
方法2:设置jvm参数,不去检查图形界面
-Djava.awt.headless=true
参考: