После того, как 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?
С наилучшими пожеланиями,