我正在使用 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 添加依赖项和库
没有解决。
有人知道这个问题的解决方案或知识吗?