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

时间:2012-01-25 12:49:45

标签: java c++ macos x11 xvfb

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

Linux的:

:~$ Xvfb :99 -ac &
:~$ DISPLAY=:99 ./app

这在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);
}

Mac OS X:

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

2 个答案:

答案 0 :(得分:3)

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

java -Djava.awt.headless=true

至少我在Windows和Linux上取得了成功。我希望它能以相同的方式在OS X上运行。这篇文章解释得非常好:http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/

答案 1 :(得分:-1)

我有同样的问题,目前发现了两个或多或少的相关文章:

https://spideroak.com/faq/questions/72/how_can_i_run_spideroak_without_the_gui_from_launchd/

http://lists.squeakfoundation.org/pipermail/seaside/2009-August/021270.html

基本上他们建议使用

--headless  

-vm-display-null 

选项