java.awt.Robot在macOS Mojave下工作奇怪

问题描述 投票:2回答:1

在macOS升级到Mojave之后,正在使用Java Robot的Java应用程序在High Sierra下工作得非常好,星星工作不正常。症状是:

  • robot.keyPress(VK_N);导致大约7个相同的错误并且没有输入任何内容。 2019-02-03 19:27:52.324 java [928:31672] pid(928)/ euid(501)在非主线程环境中调用TIS / TSM,ERROR:这是不允许的。请在主线程中拨打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 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中工作?

最好的祝福,

java awtrobot macos-mojave
1个回答
0
投票

不确定您是否已找到解决方案。如果没有,请按照以下步骤操作,

  1. 设置 - >安全和隐私
  2. 向下滚动到“辅助功能”
  3. 单击底部的锁定按钮并解锁安全和隐私首选项
  4. 单击“+”图标和您的程序(在我的情况下为Eclipse IDE)并再次尝试运行

IDE仍显示“这是不允许的。请在主线程中调用TIS / TSM !!!”但键盘和鼠标事件都有效。我也检查了你的代码。

© www.soinside.com 2019 - 2024. All rights reserved.