1

尝试在已部署的应用程序中使用 java awt 机器人,最初得到无头异常,认为更改无头属性就可以了,但问题仍然存在

    try {
        Field defaultHeadlessField =      java.awt.GraphicsEnvironment.class.getDeclaredField("defaultHeadless");
        defaultHeadlessField.setAccessible(true);
        defaultHeadlessField.set(null,Boolean.FALSE);
        Field headlessField = java.awt.GraphicsEnvironment.class.getDeclaredField("headless");
        headlessField.setAccessible(true);
        headlessField.set(null,Boolean.FALSE);
        System.out.print(GraphicsEnvironment.isHeadless());
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    }
    try {
        Robot robot = new Robot();

但现在它说

java.awt.HeadlessException
at sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:64)

基本用例是在浏览器窗口上模拟 keypress(0),需要一些帮助来解决这个问题。

4

0 回答 0