# 対策

#### 対策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

##### 変更内容

<table border="1" id="bkmrk-%28a%29-%E5%85%88%E9%A0%AD%E3%81%AB%E8%BF%BD%E5%8A%A0--j-dapple." style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 21.131%;"></col><col style="width: 53.9584%;"></col><col style="width: 25.0298%;"></col></colgroup><tbody><tr><td>(a) 先頭に追加</td><td>-J-Dapple.laf.useScreenMenuBar=false</td><td>← 主因対策</td></tr><tr><td>(b) 既存値を変更</td><td>-J-Dplugin.manager.check.interval=EVERY\_STARTUP</td><td>  
</td></tr><tr><td>  
</td><td>→ -J-Dplugin.manager.check.interval=NEVER</td><td>← 更新待ち解消</td></tr></tbody></table>

#####  各変更点の意味

- [ ] (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(ツール) &gt; Plugins(プラグイン) から実行する事になります。

##### バックアップ

同フォルダに mplab\_ide.conf.bak を作成します。

##### 実行したコマンド(参考)

  
\# バックアップ

```bash
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"
```

\# メニューバー無効化フラグを先頭に追加

```bash
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 に変更

```bash
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"
```

\# 確認

```bash
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 権限は不要)します。

##### 実行したコマンド

  
 # キャッシュ削除(設定は保持・低リスク)

```bash
rm -rf "$HOME/Library/Caches/mplab_ide/dev/v6.30"
```

\# 前回ウィンドウ状態を退避(自動復元時の負荷の除去)

```bash
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 に退避済み