我想从无头服务器的java中获取很多截图。 为此,我的计划如下。
问题是java.awt.GraphicsEnvironment#getScreenDevices()未列出xvfb屏幕设备。
代码是这样的。 http://www.java2s.com/Code/JavaAPI/java.awt/GraphicsEnvironmentgetScreenDevices.htm
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
public class MainClass {
public static void main(String[] a) throws Exception {
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] screenDevices = ge.getScreenDevices();
for (int i = 0; i < screenDevices.length; i++)
System.out.println(screenDevices[i].getIDstring());
}
}
终端:
% Xvfb :1 -screen 0 1024x768x24 &
% Xvfb :2 -screen 0 1024x768x24 &
实际上,我测试了Clojure在MBA(Mac OSX 10.6.8)和HP2140(Ubuntu 10.04)上的等同代码。
(seq (.getScreenDevices (java.awt.GraphicsEnvironment/getLocalGraphicsEnvironment))
;=> (#<CGraphicsDevice CGraphicsDevice[screen=0]>)
我认为应该列出两个xvfb设备。 有没有办法获得xvfb GraphicsDevice?
感谢。