假X11显示?

ash*_*her 15 java linux x11 awt

我有一个使用AWT的Java程序,我想在无头系统上运行.程序的显示除了显示统计数据外什么都不做.程序结束后退出.显示屏上没有用户交互.该程序创建了一个我在构建系统中使用的输出文件.

有没有办法在没有配置X11显示器的情况下运行Java程序?我可以强制Java运行程序而不尝试显示任何内容吗?我无法访问源代码(它只是.jar文件),因此我无法对源代码进行修改.

有关如何让它工作的任何想法?

Cha*_*ffy 30

这里的基本问题是如何在没有X服务器的情况下运行Java应用程序; 提供"假"X服务器只是一种选择.在Java 1.4及更高版本中,您可以执行以下操作:

java -Djava.awt.headless=true
Run Code Online (Sandbox Code Playgroud)

这使得即使没有X服务器,使用AWT的应用程序也可以在无头系统上运行.

  • 请注意,这不一定是足够的。例如,即使使用此标志,我也会得到以下尝试使用 JFrame 的程序的堆栈跟踪: Exception in thread "main" java.awt.HeadlessException at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159) at java .awt.Window.<init>(Window.java:431) 在 java.awt.Frame.<init>(Frame.java:403) 在 javax.swing.JFrame.<init>(JFrame.java:207) (2认同)

小智 16

Xvfb可以满足您的要求.我自己没有用过它,但这里有一个维基百科的链接:http://en.wikipedia.org/wiki/Xvfb


vrd*_*dhn 14

您可以使用vncserver.

vncserver :1001
export DISPLAY=localhost:1001
java..
Run Code Online (Sandbox Code Playgroud)

增加的优点是你可以使用vncserver实际查看gui'以防万一'


Jos*_*hua 5

也可以在低分辨率和颜色深度下运行Xvnc.