首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Ubuntu 15.04 安裝 JDK 後出現 Picked up JAVA_TOOL_OPTIONS:Jayatana 全局菜單代理

     編輯:程式設計綜合問答

現象

$ 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. 系統級禁用 Jayatanasudo 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 行

補充說明

  • Ubuntu 16.04+ 默認改用 GNOME Shell,Jayatana 依然存在但可選安裝。
  • 若開發 Swing 桌面應用且需要全局菜單,保留 Jayatana 並在代碼中 System.setProperty("java.awt.headless", "false")。
  • 環境變量 _JAVA_OPTIONS 同理,優先級高於 JAVA_TOOL_OPTIONS。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved