未设置 X11 DISPLAY 变量,但该程序执行了需要该变量的操作。 [Java、VSCode]

问题描述 投票:0回答:1

所以我和两个朋友正在为我们的高中计算机科学课做一个项目。我们使用 Swing 来制作 GUI,但遇到了一些问题。我们遇到了

No X11 DISPLAY variable was set, but this program performed an operation which requires it.
错误,我从未听说过 X11 DISPLAY,但按照错误轨迹,它似乎与无头异常有关,即缺少显示器。我对它的含义有一些模糊的想法,但这没有多大帮助。

我们目前正在 Visual Studio Code 中进行编码,并连接到 Github Codespace。我们有一个名为 Main.java 的文件,其中包含以下代码:

import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferStrategy;
import javax.swing.*;

public class Main extends Canvas implements KeyListener {
        public Main() {
                JFrame frame = new JFrame("ma pona");
                frame.add(this);
                frame.setSize(1000, 750);
                frame.getContentPane().setBackground(Color.DARK_GRAY);
                frame.setVisible(true);
                frame.setResizable(false);
                frame.addWindowListener(
                        new WindowAdapter() {
                            public void windowClosing(WindowEvent e) {
                                System.exit(0);
                            }
                        });
        }
        public static void main(String[] args) throws Exception {
                new Main();
            }

我们的具体错误是:

Exception in thread "main" java.awt.HeadlessException: 
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
        at java.desktop/java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:208)
        at java.desktop/java.awt.Window.<init>(Window.java:548)
        at java.desktop/java.awt.Frame.<init>(Frame.java:423)
        at java.desktop/javax.swing.JFrame.<init>(JFrame.java:224)
        at Main.<init>(Main.java:8)
        at Main.main(Main.java:22)

如果您能提供任何见解,那就太好了。谢谢您的宝贵时间。

java swing visual-studio-code awt x11
1个回答
0
投票

您正在尝试在没有显示器的环境中执行图形 Java 应用程序。 Codespaces 环境不适合此类应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.