対策
対策1
mplab_ide.conf の default_options にフラグ追加・修正(要 sudo権限)します。
対象ファイル
/Applications/microchip/mplabx/v6.30/MPLAB X IDE v6.30.app/Contents/Resources/mplab_ide/etc/mplab_ide.conf
変更内容
| (a) 先頭に追加 | -J-Dapple.laf.useScreenMenuBar=false | ← 主因対策 |
| (b) 既存値を変更 | -J-Dplugin.manager.check.interval=EVERY_STARTUP | |
| → -J-Dplugin.manager.check.interval=NEVER | ← 更新待ち解消 |
各変更点の意味
- (a) apple.laf.useScreenMenuBar
- macOS 特有の「画面上部のシステムメニューバー」に Java アプリのメニューを載せる連携機能の ON/OFF を決めるフラグです。true だとメニューが画面最上部に表示されます。
- 既定は有効(true)。だが Java 8 + macOS Tahoe 25 ではこのスクリーンメニュー バー構築が非常に重く、起動時に UI スレッド(EDT)が約8.4秒ブロックしてレインボール化していました(ログの "Too long AWTTask ... Menu/File" が該当)。
- false にすると、メニューを各ウィンドウ内に描画する方式へ切り替わり、この 重い処理を回避できる。今回のビーチボールの主因に対する直接的な対策です。
- 副作用: メニューバーが画面最上部ではなく MPLAB X のウィンドウ内に表示される事になります(Windowsのようにな)。ようになります(機能上の支障はなく、見た目・操作位置が変わるだけ)。 - (b) plugin.manager.check.interval
- MPLAB X(NetBeans 基盤)がプラグイン/更新の有無を Microchip サーバへ確認する「頻度」を決める設定です。
- 変更前 EVERY_STARTUP = 起動するたびに毎回オンラインで更新チェックを実行します。オフラインや回線が遅いと、ここでサーバ応答を待たされ起動が固まる一因になっていました(ログの UnknownHostException: ww1.microchip.com 等が該当)。
- 変更後 NEVER = 起動時の自動更新チェックを実施しなくなります。これによりネットワーク待ちによる起動遅延・ハングを回避します。
- 副作用: 更新が自動通知されなくなります。アップデート確認は必要時に手動でTools(ツール) > Plugins(プラグイン) から実行する事になります。
バックアップ
同フォルダに mplab_ide.conf.bak を作成します。
実行したコマンド(参考)
# バックアップ
sudo cp -p "/Applications/microchip/mplabx/v6.30/MPLAB X IDE v6.30.app/Contents/Resources/mplab_ide/etc/mplab_ide.conf" \ "/Applications/microchip/mplabx/v6.30/MPLAB X IDE v6.30.app/Contents/Resources/mplab_ide/etc/mplab_ide.conf.bak"
# メニューバー無効化フラグを先頭に追加
sudo perl -i -pe 's/^default_options="/default_options="-J-Dapple.laf.useScreenMenuBar=false /' \ "/Applications/microchip/mplabx/v6.30/MPLAB X IDE v6.30.app/Contents/Resources/mplab_ide/etc/mplab_ide.conf"
# 更新チェックを NEVER に変更
sudo perl -i -pe 's/-J-Dplugin\.manager\.check\.interval=EVERY_STARTUP/-J-Dplugin.manager.check.interval=NEVER/' \ "/Applications/microchip/mplabx/v6.30/MPLAB X IDE v6.30.app/Contents/Resources/mplab_ide/etc/mplab_ide.conf"
# 確認
grep -n '^default_options=' \ "/Applications/microchip/mplabx/v6.30/MPLAB X IDE v6.30.app/Contents/Resources/mplab_ide/etc/mplab_ide.conf"
変更後の default_options(先頭抜粋)
default_options="-J-Dapple.laf.useScreenMenuBar=false -J-Dprism.allowhidpi=false
... -J-Dplugin.manager.check.interval=NEVER ... -J-Duser.region=en"
対策2
キャッシュと前回ウィンドウ状態のリセット(sudo 権限は不要)します。
実行したコマンド
# キャッシュ削除(設定は保持・低リスク)
rm -rf "$HOME/Library/Caches/mplab_ide/dev/v6.30"
# 前回ウィンドウ状態を退避(自動復元時の負荷の除去)
mv "$HOME/Library/Application Support/mplab_ide/dev/v6.30/config/Windows2Local" \ "$HOME/Library/Application Support/mplab_ide/dev/v6.30/config/Windows2Local.bak.<日時>"
結果
- キャッシュ: 削除済み(次回起動時に再生成。初回は起動が少し遅い)
- Windows2Local: Windows2Local.bak.20260602152146 に退避済み