tomcat500,sun.awt.X11GraphicsEnvironment

以下内容主要来自网络,由于内容有些部分说明的不够详细,所以我将这些内容进行整合,再重新发布

原因导致:

  经过Google发现很多人也出现同样的问题。从了解了X11GraphicEnvironment这个类的功能入手,

一个Java服务器来处理图片的API基本上是需要运行一个X-server以便能使用AWT(Abstract Window Toolkit,抽象窗口工具集)。

所以,问题肯定出在启动server时,未能实现X-Server功能。root用户未启动XServer,mmcse中启动了XWindow。so问题来了。

原贴链接:caoyingjielxq

处理方式:

修改${TOMCAT_HOME}/bin/catalina.sh (windows修改catalina.bat) 里加上一句 CATALINA_OPTS=-Djava.awt.headless=true

原贴链接:java:提示Could not initialize class sun.awt.X11GraphicsEnvironment

[0.026s][warning][cds] Archived non-system classes are disabled because the java.system.class.loader property is specified (value = "com.intellij.util.lang.PathClassLoader"). To use archived non-system classes, this property must not be set **Start Failed** Internal error java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit at java.desktop/sun.awt.PlatformGraphicsInfo.createToolkit(PlatformGraphicsInfo.java:74) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:595) at java.desktop/java.awt.Toolkit.getEventQueue(Toolkit.java:1500) at java.desktop/java.awt.EventQueue.invokeLater(EventQueue.java:1326) at java.desktop/javax.swing.SwingUtilities.invokeLater(SwingUtilities.java:1421) at com.l.N.N.o.JH.l(JH.java:225) at com.l.N.N.l.lq.l(lq.java:252) at com.l.N.N.l.lq.J(lq.java:208) at com.l.N.N.l.l1.J(l1.java:55) at com.intellij.idea.MainImpl.start(MainImpl.kt:15) at com.intellij.platform.ide.bootstrap.StartupUtil$startApplication$9$2.invokeSuspend(startup.kt:307) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:112) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$BuildersKt__BuildersKt(Builders.kt:85) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:53) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:49) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) at com.intellij.idea.Main.mainImpl(Main.kt:72) at com.intellij.idea.Main.main(Main.kt:47) Suppressed: java.awt.AWTError: Can't connect to X11 window server using '10.64.83.66:0' as the value of the DISPLAY variable. at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at java.desktop/sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:110) at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) at java.desktop/sun.awt.X11GraphicsEnvironment.initStatic(X11GraphicsEnvironment.java:65) at java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:60) at java.desktop/sun.awt.PlatformGraphicsInfo.createGE(PlatformGraphicsInfo.java:68) at java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(GraphicsEnvironment.java:104) at java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(GraphicsEnvironment.java:89) at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:117) at java.desktop/sun.awt.X11.XToolkit.<clinit>(XToolkit.java:515) at java.desktop/sun.awt.PlatformGraphicsInfo.createToolkit(PlatformGraphicsInfo.java:74) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:595) at com.intellij.platform.ide.bootstrap.UiKt$initAwtToolkit$2.invokeSuspend(ui.kt:139) at com.intellij.platform.ide.bootstrap.UiKt$initAwtToolkit$2.invoke(ui.kt) at com.intellij.platform.ide.bootstrap.UiKt$initAwtToolkit$2.invoke(ui.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:62) at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:163) at kotlinx.coroutines.BuildersKt.withContext(Unknown Source) at com.intellij.platform.diagnostic.telemetry.impl.TracerKt.span(tracer.kt:56) at com.intellij.platform.diagnostic.telemetry.impl.TracerKt.span$default(tracer.kt:48) at com.intellij.platform.ide.bootstrap.UiKt.initAwtToolkit(ui.kt:138) at com.intellij.platform.ide.bootstrap.UiKt.access$initAwtToolkit(ui.kt:1) at com.intellij.platform.ide.bootstrap.UiKt$scheduleInitAwtToolkit$task$1$1.invokeSuspend(ui.kt:121) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:608) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:873) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:763) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:750) Suppressed: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit at java.desktop/sun.awt.PlatformGraphicsInfo.createToolkit(PlatformGraphicsInfo.java:74) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:595) at com.intellij.platform.ide.bootstrap.StartupUtil.logEssentialInfoAboutIde(startup.kt:564) at com.intellij.platform.ide.bootstrap.StartupUtil$scheduleLoadSystemLibsAndLogInfoAndInitMacApp$1$3.invokeSuspend(startup.kt:366) ... 6 more Caused by: java.lang.ExceptionInInitializerError: Exception java.awt.AWTError: Can't connect to X11 window server using '10.64.83.66:0' as the value of the DISPLAY variable. [in thread "DefaultDispatcher-worker-9"] at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at java.desktop/sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:110) at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) at java.desktop/sun.awt.X11GraphicsEnvironment.initStatic(X11GraphicsEnvironment.java:65) at java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:60) at java.desktop/sun.awt.PlatformGraphicsInfo.createGE(PlatformGraphicsInfo.java:68) at java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(GraphicsEnvironment.java:104) at java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(GraphicsEnvironment.java:89) at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:117) at java.desktop/sun.awt.X11.XToolkit.<clinit>(XToolkit.java:515) at java.desktop/sun.awt.PlatformGraphicsInfo.createToolkit(PlatformGraphicsInfo.java:74) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:595) at com.intellij.platform.ide.bootstrap.UiKt$initAwtToolkit$2.invokeSuspend(ui.kt:139) at com.intellij.platform.ide.bootstrap.UiKt$initAwtToolkit$2.invoke(ui.kt) at com.intellij.platform.ide.bootstrap.UiKt$initAwtToolkit$2.invoke(ui.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:62) at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:163) at kotlinx.coroutines.BuildersKt.withContext(Unknown Source) at com.intellij.platform.diagnostic.telemetry.impl.TracerKt.span(tracer.kt:56) at com.intellij.platform.diagnostic.telemetry.impl.TracerKt.span$default(tracer.kt:48) at com.intellij.platform.ide.bootstrap.UiKt.initAwtToolkit(ui.kt:138) at com.intellij.platform.ide.bootstrap.UiKt.access$initAwtToolkit(ui.kt:1) at com.intellij.platform.ide.bootstrap.UiKt$scheduleInitAwtToolkit$task$1$1.invokeSuspend(ui.kt:121) ... 6 more Suppressed: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit at java.desktop/sun.awt.PlatformGraphicsInfo.createToolkit(PlatformGraphicsInfo.java:74) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:595) at java.desktop/java.awt.Toolkit.getEventQueue(Toolkit.java:1500) at java.desktop/java.awt.EventQueue.isDispatchThread(EventQueue.java:1097) at java.desktop/javax.swing.SwingUtilities.isEventDispatchThread(SwingUtilities.java:1493) at com.intellij.openapi.application.TransactionGuardImpl.<init>(TransactionGuardImpl.java:38) at com.intellij.openapi.application.impl.ApplicationImpl.<init>(ApplicationImpl.java:101) at com.intellij.platform.ide.bootstrap.StartupUtil$startApplication$appLoaded$1$app$1.invokeSuspend(startup.kt:273) ... 6 more Caused by: [CIRCULAR REFERENCE: java.lang.ExceptionInInitializerError: Exception java.awt.AWTError: Can't connect to X11 window server using '10.64.83.66:0' as the value of the DISPLAY variable. [in thread "DefaultDispatcher-worker-9"]] Caused by: [CIRCULAR REFERENCE: java.lang.ExceptionInInitializerError: Exception java.awt.AWTError: Can't connect to X11 window server using '10.64.83.66:0' as the value of the DISPLAY variable. [in thread "DefaultDispatcher-worker-9"]] ----- JRE: 21.0.7+9-b895.130 amd64 (JetBrains s.r.o.) /home/eagler/pycharm-community-2025.1.2/jbr ----- Also, a UI exception occurred in an attempt to show the above message: java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit at java.desktop/sun.awt.PlatformGraphicsInfo.createToolkit(PlatformGraphicsInfo.java:74) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:595) at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:213) at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:232) at com.intellij.platform.ide.bootstrap.StartupErrorReporter.showError(StartupErrorReporter.java:138) at com.intellij.platform.ide.bootstrap.StartupErrorReporter.showError(StartupErrorReporter.java:99) at com.intellij.idea.Main.mainImpl(Main.kt:86) at com.intellij.idea.Main.main(Main.kt:47) Caused by: java.lang.ExceptionInInitializerError: Exception java.awt.AWTError: Can't connect to X11 window server using '10.64.83.66:0' as the value of the DISPLAY variable. [in thread "DefaultDispatcher-worker-9"] at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at java.desktop/sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:110) at java.base/java.security.AccessController.doPrivileged(AccessController.java:319) at java.desktop/sun.awt.X11GraphicsEnvironment.initStatic(X11GraphicsEnvironment.java:65) at java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:60) at java.desktop/sun.awt.PlatformGraphicsInfo.createGE(PlatformGraphicsInfo.java:68) at java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(GraphicsEnvironment.java:104) at java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(GraphicsEnvironment.java:89) at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:117) at java.desktop/sun.awt.X11.XToolkit.<clinit>(XToolkit.java:515) at java.desktop/sun.awt.PlatformGraphicsInfo.createToolkit(PlatformGraphicsInfo.java:74) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:595) at com.intellij.platform.ide.bootstrap.UiKt$initAwtToolkit$2.invokeSuspend(ui.kt:139) at com.intellij.platform.ide.bootstrap.UiKt$initAwtToolkit$2.invoke(ui.kt) at com.intellij.platform.ide.bootstrap.UiKt$initAwtToolkit$2.invoke(ui.kt) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:62) at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:163) at kotlinx.coroutines.BuildersKt.withContext(Unknown Source) at com.intellij.platform.diagnostic.telemetry.impl.TracerKt.span(tracer.kt:56) at com.intellij.platform.diagnostic.telemetry.impl.TracerKt.span$default(tracer.kt:48) at com.intellij.platform.ide.bootstrap.UiKt.initAwtToolkit(ui.kt:138) at com.intellij.platform.ide.bootstrap.UiKt.access$initAwtToolkit(ui.kt:1) at com.intellij.platform.ide.bootstrap.UiKt$scheduleInitAwtToolkit$task$1$1.invokeSuspend(ui.kt:121) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:608) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:873) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:763) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:750) 出现这种情况是什么问题?如何解决?
06-16
**Start Failed** Internal error java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit at java.desktop/sun.awt.PlatformGraphicsInfo.createToolkit(Unknown Source) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Unknown Source) at com.intellij.platform.ide.bootstrap.StartupUtil.logEssentialInfoAboutIde(startup.kt:564) at com.intellij.platform.ide.bootstrap.StartupUtil$scheduleLoadSystemLibsAndLogInfoAndInitMacApp$1$3.invokeSuspend(startup.kt:366) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:608) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:873) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:763) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:750) Suppressed: java.awt.AWTError: Can't connect to X11 window server using 'localhost:10.0' as the value of the DISPLAY variable. at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at java.desktop/sun.awt.X11GraphicsEnvironment$1.run(Unknown Source) at java.base/java.security.AccessController.doPrivileged(Unknown Source) at java.desktop/sun.awt.X11GraphicsEnvironment.initStatic(Unknown Source) at java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(Unknown Source) at java.desktop/sun.awt.PlatformGraphicsInfo.createGE(Unknown Source) at java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(Unknown Source) at java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(Unknown Source) at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(Unknown Source) at java.desktop/sun.awt.X11.XToolkit.<clinit>(Unknown Source) at java.desktop/sun.awt.PlatformGraphicsInfo.createToolkit(Unknown Source) at java.desktop/j
最新发布
08-11
IntelliJ IDEA 启动失败并抛出 `java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit` 错误,通常与图形环境或 JVM 配置相关。该错误表明 JVM 在尝试初始化与 X11 图形环境相关的类时失败,这在某些 Linux 环境或远程桌面环境中尤为常见。 ### 原因分析 - **缺少图形支持**:当在无头(headless)环境中运行 IntelliJ IDEA(例如某些服务器环境或远程 SSH 会话),JVM 可能无法加载与 X11 相关的图形类库。 - **JVM 配置不当**:默认情况下,JetBrains Runtime(JBR)可能会尝试使用系统图形库,如果这些库不可用或不兼容,会导致初始化失败。 - **权限问题**:某些情况下,用户可能没有访问 X11 服务器的权限,尤其是在使用 `sudo` 或远程会话时。 ### 解决方案 1. **启用 Headless 模式** 可以通过修改 `idea64.vmoptions` 文件(位于 IntelliJ IDEA 的 `bin` 目录下),添加以下 JVM 参数,强制启用无头模式,避免加载图形界面相关类: ```text -Djava.awt.headless=true -Dsun.awt.disablegrab=true ``` 2. **修改图形渲染后端** JetBrains Runtime 支持多种图形后端。可以通过设置以下参数来禁用 X11 渲染: ```text -Dsun.java2d.xrender=false -Dsun.java2d.pmoffscreen=false ``` 3. **使用不同的 JBR 版本** 如果使用的是基于 JBR 的运行时,尝试切换到标准的 OpenJDK 或 OracleJDK,或者使用 JetBrains 提供的其他 JBR 版本(如 JBR17、JBR8)。可以在 `idea.conf` 文件中修改 `idea.jbr.version` 和 `idea.jbr.vendor` 配置项。 4. **检查 DISPLAY 环境变量** 如果在远程环境中运行,确保 `DISPLAY` 环境变量已正确设置。如果没有图形界面,可以尝试取消设置该变量: ```bash unset DISPLAY ``` 5. **安装缺失的图形库** 在某些 Linux 发行版中,可能缺少必要的图形库。可以尝试安装以下库: ```bash sudo apt-get install libxrender1 libxext6 libx11-xcb1 ``` 6. **检查用户权限与 X11 访问控制** 如果使用的是 X11 转发(如通过 SSH),确保用户具有访问 X11 显示器的权限。可以使用 `xhost` 命令添加访问权限: ```bash xhost +local:root ``` --- ### 示例:修改 `idea64.vmoptions` 文件 ```text # 启用无头模式 -Djava.awt.headless=true -Dsun.awt.disablegrab=true # 禁用 X11 渲染 -Dsun.java2d.xrender=false -Dsun.java2d.pmoffscreen=false ``` --- ### 注意事项 - 修改配置文件后,请重启 IntelliJ IDEA。 - 如果使用远程开发环境(如 SSH + X11 转发),确保网络和图形设置已正确配置。 - 如果问题仍然存在,可尝试重新安装 IntelliJ IDEA 或更新至最新版本[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值