我在 IntelliJ IDE 中使用该代码创建了 java 文件
import java.awt.AWTException;
import java.awt.MouseInfo;
import java.awt.Robot;
public class JavaRobotExample {
public static void main(String[] args) {
int x = 12,
y = 300;
try {
Robot robot = new Robot();
robot.mouseMove(x, y);
int xAct = (int) MouseInfo.getPointerInfo().getLocation().getX(),
yAct = (int) MouseInfo.getPointerInfo().getLocation().getY();
String sPred = String.format("Predicted mouse location : %, d, %, d", x, y),
sAct = String.format("Actual mouse location : %, d, %, d", xAct, yAct);
System.out.println(sPred);
System.out.println(sAct);
} catch (AWTException e) {
e.printStackTrace();
}
}
}
该示例在 Windows 7 环境中运行良好,但 Mac OS 10.14 上的相同代码不会使用 mouseMove 方法移动鼠标(而是使用 MouseInfo 类读取位置)。
我也没有收到任何异常,例如
有人之前遇到过类似的问题吗?有什么想法可以让该代码在 Mac OS 中运行吗?
此致,
我也有同样的问题。我有一个声明“robot.mouseMove(100, 100);”并且鼠标根本不动。我有一个想法要研究。当我运行代码时,我注意到 MacOS 发出警告或信息类型的消息。它询问我有关授予我的程序控制屏幕或系统或其他东西的权限。我尝试单击“允许”复选框,但它不允许我这样做。我会再研究一下。我认为这是 MacOS 的问题。你(和我)必须告诉 MacOS 我们的 Java 程序可以控制鼠标。
我想这就是解决办法。 。 。
在“系统偏好设置”(“齿轮”图标)中的“安全和隐私”下,单击顶部的“隐私”选项卡,然后选择左侧的“辅助功能”。这列出了所有可以“控制您的计算机”的程序。我使用的是 STS,而不是 IntelliJ。我看到 STS 与 BetterSnapTool 和 KeyCastr 一起列出。 BetterSnapTool 和 KeyCastr 均已选中。未检查 STS。而且,所有这些都呈灰色,因此我无法更改任何检查。窗口左下角有一个锁定图标。我单击该图标,然后出现提示,询问我的密码(我有一定程度的系统管理员权限)。我输入了密码,现在可以“检查”STS。我“检查”了STS(您将“检查”IntelliJ)。 “检查”STS后,我再次单击左下角的锁定图标。这样就“关闭”了锁。现在,当我运行程序时,机器人命令会移动我的鼠标。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)