java.awt. Робот работает странно под macOS Мохаве - PullRequest
0 голосов
/ 04 февраля 2019

После того, как macOS был обновлен до Mojave, Java-приложения, которое использует Java Robot и прекрасно работает в High Sierra, оно начинает работать некорректно.Симптомы:

  • robot.keyPress (VK_N);вызывает примерно 7 одинаковых ошибок и ничего не набирает.

    2019-02-03 19: 27: 52.324 java [928: 31672] pid (928) / euid (501) вызывает TIS/ TSM в среде неосновного потока, ОШИБКА: это НЕ допускается.Пожалуйста, вызовите TIS / TSM в основном потоке !!!

  • robot.mouseMove работает нормально, если я запускаю его через командную строку Java, и не работает, если я запускаю то же самоекласс в затмении.

    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 вообще не работает в Mac OS X Я добавил Java и Eclipse в раздел Безопасность и конфиденциальность, нажмите кнопкуВверху перейдите на вкладку Конфиденциальность, затем выберите Доступность.Это не решило проблему.Более того, я не видел никакой разницы.

Я прошел по этой ссылке https://eclecticlight.co/2018/09/17/managing-mojaves-privacy-protection-privacy-controls/ и запустил "tccutil reset AppleEvents".Но я не ожидал, что появится диалоговое окно для добавления пары приложений в раздел «Конфиденциальность => Автоматизация» «Системные настройки»

У меня Java 1.8.0_191, x86_64.

Есть идеи, какзаставить этот код работать в Mac OS Mojave?

С наилучшими пожеланиями,

1 Ответ

0 голосов
/ 03 марта 2019

Не уверен, что вы уже нашли решение.Если нет, выполните следующие действия:

  1. Настройки -> Безопасность и конфиденциальность
  2. Прокрутите вниз до «Доступность»
  3. Нажмите кнопку блокировки внизу и разблокируйтенастройки безопасности и конфиденциальности
  4. Нажмите значок «+» и свою программу (Eclipse IDE в моем случае) и попробуйте запустить снова

В среде IDE по-прежнему отображается сообщение «Это НЕ разрешено.Пожалуйста, позвоните TIS / TSM в основной теме !!! "но события Keyboard и Mouse работают.Я также проверил ваш код.

...