在macOS升级到Mojave之后,正在使用Java Robot的Java应用程序在High Sierra下工作得非常好,星星工作不正常。症状是:
public static void main( String[] arg) throws AWTException, InterruptedException {
Robot robot;
robot = new Robot();
robot.waitForIdle();
robot.keyPress(VK_N);
robot.keyRelease(VK_N);
robot.waitForIdle();
robot.mouseMove(100, 100);
Thread.sleep(500);
robot.mouseMove(10, 10);
}
根据Robot.mouseMove does not work at all in Mac OS X的建议,我已将Java和Eclipse添加到安全和隐私中,单击顶部的“隐私”选项卡,然后选择“辅助功能”。它没有解决问题。而且,我看不出任何区别。
我通过这个链接https://eclecticlight.co/2018/09/17/managing-mojaves-privacy-protection-privacy-controls/并运行“tccutil reset AppleEvents”。但是我没想到将对应的应用程序添加到“系统首选项”的Privacy => Automation部分中的对话框
我的Java是1.8.0_191,x86_64。
任何想法如何让代码在Mac OS Mojave中工作?
最好的祝福,
不确定您是否已找到解决方案。如果没有,请按照以下步骤操作,
IDE仍显示“这是不允许的。请在主线程中调用TIS / TSM !!!”但键盘和鼠标事件都有效。我也检查了你的代码。