我正在执行一个 shell 脚本,该脚本执行一系列 java 命令。但即使我从命令行执行java,问题仍然存在。最重要的是,java 更改了应用程序菜单栏,但其他命令(例如 ls、rm、mv)的行为并非如此。
当脚本运行时,我将窗口焦点更改为其他内容。每次脚本执行 java 时,窗口管理器都会将焦点从当前窗口移开并将其交给 java(从而 macOS 当前应用程序菜单栏外观反射(reflect)了 java 命令)。
然后,当 java 命令完成时,焦点将返回到当前窗口,并且 macOS 当前应用程序菜单栏将返回到之前的状态。
窗口焦点变化的频率让我想起了不止一部大卫·林奇的作品。但危险在于键盘焦点。一次误击的按键让我感到有点困惑/生气。
我曾隐约希望使用 -Dapple.laf.useScreenMenuBar=false
会产生意想不到但积极的副作用,但没有任何改变。
我已经忍受这种行为很长一段时间了,所以我不知道这种行为何时会被引入。无论如何,我使用的是 macOS 10.13.6 和 java 1.8.0_171,我的 shell 是 bash(但没有奇怪的别名或提示)。
最佳答案
设置-Djava.awt.headless=true
以与本 map 形环境断开连接运行。
关于java - 我可以阻止 java 告诉 macOS 窗口管理器将焦点从当前窗口移开吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51974022/