macos升级到mojave后,java应用程序使用java robot,在high sierra下工作绝对正常,但stars无法正常工作。症状有:
机器人按键;导致大约7个相同的错误,没有键入任何内容。
2019-02-03 19:27:52.324 java[928:31672]pid(928)/euid(501)正在非主线程环境中调用tis/tsm,错误:这是不允许的。请在主线程中调用tis/tsm!!!
如果我通过java命令行运行robot.mousemove,它可以正常工作;如果我在eclipse中运行同一个类,它就不工作。
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在MacOSX中根本不起作用的建议,我已经将java和eclipse添加到security&privacy中,单击顶部的privacy选项卡,然后选择accessibility。它没有解决问题。而且,我看不出有什么不同。
我浏览了这个链接https://eclecticlight.co/2018/09/17/managing-mojaves-privacy-protection-privacy-controls/ 运行“tccutil reset appleevents”。但我没想到这个对话框会将这对应用程序添加到“系统首选项”的privacy=>automation部分
我的java是1.8.0\u191,x86\u64。
你知道如何让这些代码在MacOSMojave中工作吗?
致以最诚挚的问候,
1条答案
按热度按时间atmip9wb1#
不确定你是否已经找到了解决方案。如果没有,请按照以下步骤操作,
设置->安全和隐私
向下滚动至“辅助功能”
单击底部的锁定按钮并解锁安全和隐私首选项
单击“+”图标和您的程序(在我的例子中是eclipseide),然后再次尝试运行
ide仍然显示“这是不允许的。请在主线程中调用tis/tsm!!!”但是键盘和鼠标事件都可以工作。我也查了你的密码。