$ java -version
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
java version "1.8.0_XXX" ...
每次運行 Java 程序前都會打印此行,雖不影響功能但干擾日志/腳本解析。
Ubuntu 15.04 引入 Jayatana(Java Ayatana),為 Swing/JavaFX 應用提供 Unity/Global Menu 集成。系統級配置文件 /etc/environment.d/90-jayatana.conf 或 /etc/profile.d/jayatana.sh 自動導出 JAVA_TOOL_OPTIONS。
| 方案 | 命令/操作 | 影響範圍 |
|---|---|---|
| 1. 當前用戶屏蔽(推薦) | echo 'unset JAVA_TOOL_OPTIONS' >> ~/.profile && source ~/.profile | 僅當前用戶,不影響其他 Java 應用全局菜單 |
| 2. 系統級禁用 Jayatana | sudo apt-get remove jayatana 或 sudo mv /usr/share/java/jayatanaag.jar /usr/share/java/jayatanaag.jar.bak | 所有用戶,Swing 應用失去全局菜單集成 |
| 3. 啟動腳本中清理 | 在啟動腳本首行加 unset JAVA_TOOL_OPTIONS | 單個應用,部署腳本可控 |
$ java -version
java version "1.8.0_XXX" ... # 不再有 Picked up 行
System.setProperty("java.awt.headless", "false")。_JAVA_OPTIONS 同理,優先級高於 JAVA_TOOL_OPTIONS。