我收到错误消息“ 2018-12-22 18:29:09.516 java [17936:299421] pid(17936)/ euid(501)在非主线程环境中调用TIS / TSM,错误:这不是允许。请在主线程中致电TIS / TSM !!!”在我的代码中,如下所示:
Robot robot = new Robot();
String string = "hi";
long mainThreadId = Thread.currentThread().getId();
for (int i = 0; i < string.length(); i++) {
char character = string.charAt(i);
switch (character) {
case 'h': System.out.println(Thread.currentThread().getId() == mainThreadId); break;
case 'i': robot.keyPress(KeyEvent.VK_I); break;
}
}
您所看到的一切都在main方法中。我在情况“ h”中添加的检查表明,语句期间的当前线程与主线程相同(打印为true)。这是否表示不会发生该错误?编写此代码是为了keyPress给定字符串中的所有字符。我在MacOS Mojave 10.14.2上使用MacBook Pro。