假X11显示?

时间:2009-01-30 04:01:02

标签: java linux awt x11

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

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

有关如何让它发挥作用的任何想法?

7 个答案:

答案 0 :(得分:30)

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

java -Djava.awt.headless=true

即使没有X服务器,这也允许使用AWT的应用程序在无头系统上运行。

答案 1 :(得分:16)

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

答案 2 :(得分:14)

您可以使用vncserver。

vncserver :1001
export DISPLAY=localhost:1001
java..

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

答案 3 :(得分:5)

还可以以低分辨率和颜色深度运行Xvnc。

答案 4 :(得分:1)

正如Charles Duffy所提到的,传统的方法是告诉Java无头。

请注意,您始终可以在Eclipse中安装jar并使用jad + jadclipse查看它实际执行的操作,如果需要在类路径中将另一个类文件放在其“前面”,甚至可以覆盖一个类

如果程序使用Java2D可能相关的工具是较新的Java版本使用X11服务器中的优化来更快地渲染。仅此一点可能是将连接到高性能图形卡的X11服务器用于图形处理的原因。

答案 5 :(得分:0)

我在过去的PJA库中使用得非常成功,它们似乎不再被维护,但是再一次,只是想要运行......

答案 6 :(得分:0)

我能够使用命令行参数

在OpenJFX中获得无头模式
-Dglass.platform=Monocle -Dmonocle.platform=Headless -Dprism.order=sw