英文:
Encountered with "java.awt.HeadlessException: No X11 DISPLAY variable was set, but this program performed an operation which requires it."
问题
以下是您要翻译的内容:
这个问题发生在我尝试运行一个非常简单的程序时。详细信息如下:
引发的异常: java.awt.HeadlessException:
未设置 X11 DISPLAY 变量,
但该程序执行了需要它的操作。
at java.desktop/java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:165)
at java.desktop/java.awt.Window.<init>(Window.java:540)
at java.desktop/java.awt.Frame.<init>(Frame.java:423)
at java.desktop/java.awt.Frame.<init>(Frame.java:388)
at java.desktop/javax.swing.JFrame.<init>(JFrame.java:180)
at StdDraw.init(StdDraw.java:669)
at StdDraw.<clinit>(StdDraw.java:632)
... 1 more
我的 OpenJDK 版本是 "14.0.1" 2020-04-14
英文:
This problem occurred when I was trying to run a very simple program. The details are below:
Caused by: 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:165)
at java.desktop/java.awt.Window.<init>(Window.java:540)
at java.desktop/java.awt.Frame.<init>(Frame.java:423)
at java.desktop/java.awt.Frame.<init>(Frame.java:388)
at java.desktop/javax.swing.JFrame.<init>(JFrame.java:180)
at StdDraw.init(StdDraw.java:669)
at StdDraw.<clinit>(StdDraw.java:632)
... 1 more
My OpenJDK version is "14.0.1" 2020-04-14
答案1
得分: 3
我假设你正在运行Linux,或者至少是某种形式的Unix。错误显示没有X11显示。系统要么是“无头”的,意味着没有图形界面,或者甚至没有监视器,要么你没有正确设置X11。
现在,如果你不打算在这个系统上使用图形界面,那么你的Java代码中肯定有某个地方在调用SWING组件。SWING是构建在较旧的AWT上的,这就是你在堆栈跟踪中看到两者的原因。
假设你有源代码,可以通过调试器逐步查找有问题的代码行并将其删除。或者,你需要在Linux系统上设置一个图形界面。
英文:
I'm presuming you are running Linux or at the very least some form of Unix. That error states there is no X11 display. Either the system is 'head-less' meaning no GUI or perhaps even monitor OR you don't have X11 setup properly.
Now if you don't mean to use a GUI on this system then something in your java code is making a call to a SWING component. SWING is built on the older AWT which is why you are seeing both in the stack trace above.
Presuming you have the source code, step through the debugger to find the offending line of code and remove it. OR you need to setup a GUI on your Linux system.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论