簡體   English   中英

Windows 主機上 Centos 7 Docker 容器中的 Java Swing GUI

[英]Java Swing GUI in a Centos 7 Docker container on a Windows Host

我正在從 centos:7 構建一個 Docker 映像(我在基本 Linux 映像上很靈活),它將在 Windows 10 主機上運行 Java Swing 應用程序。 嘗試運行 Docker 映像時,出現以下異常:

java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it.
        at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:204) ~[?:1.8.0_302]
        at java.awt.Window.<init>(Window.java:536) ~[?:1.8.0_302]
        at java.awt.Frame.<init>(Frame.java:420) ~[?:1.8.0_302]
        at java.awt.Frame.<init>(Frame.java:385) ~[?:1.8.0_302]
        at javax.swing.SwingUtilities$SharedOwnerFrame.<init>(SwingUtilities.java:1763) ~[?:1.8.0_302]
        at javax.swing.SwingUtilities.getSharedOwnerFrame(SwingUtilities.java:1838) ~[?:1.8.0_302]
        at javax.swing.JDialog.<init>(JDialog.java:272) ~[?:1.8.0_302]
        at javax.swing.JDialog.<init>(JDialog.java:206) ~[?:1.8.0_302]

我是使用了錯誤的 Linux 風格還是我沒有正確配置它? 我希望生成的圖像是獨立的,並且不需要在主機上安裝任何額外的軟件。 這可能嗎?

因此,如果您希望您的 docker 容器在 Windows 機器上打開一個窗口,請配置一個 X 服務器( https://teamdynamix.umich.edu/TDClient/47/LSAPortal/KB/ArticleDet?ID=1797 )以便它接受連接,然后通過設置環境變量DISPLAY告訴容器如何連接到該 X 服務器。

在容器下次啟動時,錯誤應該消失或不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM