在Mac上有没有一种方式可以以无头方式运行GUI应用程序?

7
我正在使用以下技术在Linux和Windows中运行GUI应用程序:
Linux: 注:
:~$ Xvfb :99 -ac &
:~$ DISPLAY=:99 ./app

这在Mac OS X上不会百分之百地工作,即使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 中执行相同操作(无论是从命令行还是以编程方式)? 谢谢!

我知道过去人们曾经通过给每个Mac焊接一个二极管(?)来黑掉一整个机架的Mac minis,以使OS X认为这些Mac并非“无头”,而是连接了显示器。我不确定这是过去最好的解决方案,但这绝对曾在某些场合出现,并且是我见过的最疯狂的黑客攻击之一。 - TacticalCoder
你可以看一下DVI侦探 - user1118321
你是否找到了解决方案?我之前很兴奋地发现Xvfb被默认安装了,但现在看来它似乎没什么用。 - Tom Christie
如果你想运行 Firefox,看起来 firefox-x11 可能是你问题的答案?(根据你下面的评论) - Tom Christie
2个回答

2

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

java -Djava.awt.headless=true

我至少在Windows和Linux上成功过。我认为在OS X上也应该能够以同样的方式工作。这篇文章解释得很好:http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/

不,这不是一个Java程序,它可以是任何应用程序,例如:Firefox浏览器应用程序。 - Michael Spector

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接