如何在Mac上运行时在X11上显示Java Swing

4
我希望能在Xvfb上运行我们的测试套件,这样就不会有swing窗口挡住我的工作了。但是我无法找到一种方法来让Java运行时使用DISPLAY环境变量中指定的显示器。我想这可能是因为Mac JDK被硬编码为使用(非基于X的)Mac显示器。
我找不到任何java命令的开关可以使用X。
感谢您提前给予的任何帮助! Matt
3个回答

3

我不知道是否有办法让苹果的JDK使用X11,但是有一种替代方法是使用SoyLatte,它是一种只能与X11一起使用的Mac Java实现。


官方的Java运行时使用平台本地GUI API。因此,Mac Java运行时与MS Windows Java运行时一样,不支持X11。 - outis
1
SoyLatte是一个好的虚拟机,还是只是一个小型的个人项目?我想在我的Ubuntu笔记本电脑上运行一个可视化编辑器,以便通过SSH编辑我的Mac上的文件。 - Pepijn

0

我正在做这件事,但是我在使用Docker作弊。

  • 下载并安装最新的Docker桌面版。
  • 拉取此镜像

docker pull openjdk

  • 如果您想在Mac上显示,请确保安装了XQuartz。
  • 同样:在首选项、安全性中,勾选身份验证和允许网络两个框。
  • 从Mac或带有xwindows的系统中复制以下内容(您必须设置DISPLAY环境变量):

    xhost + $DISPLAY (在Mac OS X上,此命令还将启动XQuartz)

  • 在Docker中运行Java(有关Docker Hub网页上的大量信息):

    docker run -e DISPLAY /bin/bash (此行传递了DISPLAY环境变量的内容)

还可以将其他形式的Java安装到各种Docker镜像中。在本例中,除非您另外进行设置,否则无法在xwindows中显示:

apt-get install  -y libxext-dev libxrender-dev libxtst-dev

在 Docker 文件的“RUN”部分中,使用 update-alternatives 脚本无法处理依赖项。我已经按照那些说明使 Java 7 工作,并添加了 X 库。

-


0

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