有没有办法在Mac中以无头方式运行GUI应用程序?

Mic*_*tor 7 c++ java x11 macos xvfb

我正在使用以下技术在Linux和Windows中运行GUI应用程序:

Linux的:

:~$ Xvfb :99 -ac &
:~$ DISPLAY=:99 ./app
Run Code Online (Sandbox Code Playgroud)

这在Mac OS X中不适用于100%,即使默认安装了Xvfb,因为大多数应用程序在Aqua环境中运行,并且只是忽略DISPLAY变量设置.

Windows(程序化方式):

HDESK hDesk=CreateDesktop(TEXT("Virtual"),NULL,NULL,NULL,GENERIC_ALL,NULL);
if(hDesk!=NULL) {
   // create process in this desktop
   CloseDesktop(hDesk);
}
Run Code Online (Sandbox Code Playgroud)

Mac OS X:

如何在Mac OS X中执行相同操作(从命令行或以编程方式)?谢谢!

Bob*_*har 2

这是一个Java问题吗?我既不认识 HDESK 也不认识 CreateDesktop 调用,但在 JVM 本身中,您可以通过调用定义了无头系统属性的 java 来几乎在任何地方运行无头系统...

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

至少我在 Windows 和 Linux 上都取得了成功。我希望它能以同样的方式在 OS X 上工作。该文章解释得很好: http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/