如何在 linux 服务器上使用 sun.awt.X11GraphicsEnvironment?

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

我正在使用 AWS linux 服务器,但出现如下错误:java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

我使用 java.awt.robot 类截屏

这是我的代码:

import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO; public class DesktopScreenshot {
    public static void main(String[] args) throws Exception {
        Robot robot = new Robot();
        Rectangle screenShot = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
        BufferedImage screenFullImage = robot.createScreenCapture(screenShot);
        File screenshotFile = new File("screenshot.png");
        ImageIO.write(screenFullImage, "png", screenshotFile);
    }
}

设置无头属性:System.setProperty("java.awt.headless", "false") 然后我得到 java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

当我将此属性设置为 true 时,它会给出“无头环境异常”

我在这里尝试一些解决方案:

设置环境变量:-Djava.awt.headless=false

在linux服务器上安装X11服务器并添加依赖

设置 DISPLAY 变量:export DISPLAY=0.0 并尝试 export DISPLAY=0.0 和 unser Display varible

还为 sun.awt.X11GraphicsEnvironment 添加依赖项和库

没有解决。

有人知道这个问题的解决方案或知识吗?

java swing awt screenshot x11
© www.soinside.com 2019 - 2024. All rights reserved.