メインコンテンツへスキップ

対策

対策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 に退避済み