ubuntu服务器的虚拟显示

lie*_*blo 3 x11 virtual ubuntu-server

我的问题是:有没有办法在Linux服务器上设置虚拟显示作为默认显示(如果没有计数器指示,所有启动的GUI应用程序将显示在该显示器上)?

我尝试使用这个:xvfb-run java -jar autoclick.jar,它产生以下输出:

searching graphic devices
is Headless:false
screen N°1 width:1600 height:900
just 1 robot click:
Magic button clicked !
Run Code Online (Sandbox Code Playgroud)

这是自动代码:

System.out.println("searching graphic devices");
System.out.println("is Headless:"+GraphicsEnvironment.isHeadless());
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();

int count = 1;
for(GraphicsDevice screen : ge.getScreenDevices())
{
    System.out.println("screen N°"+count+" width:"+screen.getDisplayMode().getWidth()
                                              +" height:"+screen.getDisplayMode().getHeight());
}
{... create a JFrame and add a JButton that closes the application and prints a message to the console when clicked}
System.out.println("just 1 robot click:");
try
{
    robot = new Robot();
    justOneClick(frame.getX()+100, frame.getY()+100);
}
catch(AWTException e)
{
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

简而言之,这是我的两个问题:

每次我想在虚拟显示器上启动应用程序时,我仍然需要调用xvfb-run.这意味着我未启动的应用程序不会在虚拟显示器上启动.

我无法在xvfb-run创建的显示器上启动另一个应用程序.

抱歉我的英语语法不好,谢谢你的时间.

JvO*_*JvO 8

使用Xfvb在后台设置虚拟X服务器,然后相应地设置DISPLAY变量:

Xvfb :1 -screen 0 1920x1080x24+32 -fbdir /var/tmp &
export DISPLAY=:1
java -jar autoclick.jar
java -jar autoclick.jar
java -jar autoclick.jar
Run Code Online (Sandbox Code Playgroud)

(又一次又一次......)

由于DISPLAY变量,在该终端中启动的任何应用程序都将使用您的虚拟X服务器.我想xvfb-run做的是设置一个Xvfb,运行程序,然后立即再次关闭Xvfb.