1.

インストール直後にNetbeansが反応しない

NetBeansが反応しないときは、JDKの不一致と決めつけず、起動条件・ログ・ユーザー設定・特定プロジェクトの影響を分けます。設定ディレクトリを削除する前に、別のuserdir/cachedirを使って比較してください。

既存設定を消さず、環境とログを記録して別領域で比較する図

IDE起動用のJDKとプロジェクトのJDKを分ける

2026年10月確認。公式ダウンロード一覧の最新はNetBeans 31です。31の配布資料は起動JDKとして21/25/26と27の初期対応を案内しています。「17以降のIDEならJDK17/21」「21はJDK17必須」といった一律表では判断しません。最低版を満たすだけで、将来の全JDKが検証済みになるわけでもありません。

IDE自身の起動JDKと、Maven/Gradle/Antやアプリ実行で選択するJDKは別です。起動に成功してもビルド/依存ライブラリ/実行先との互換性は別途確認します。旧版は保守資料として扱い、新規導入先や安易なダウングレード先にはしません。

一次資料: 公式リリース一覧、NetBeans 31の実行要件、21の旧配布要件、17の旧配布要件。

設定を削除しない診断の順序

  1. IDEの版・配布元・OS/CPU・起動した実行ファイル・JDKパスを記録する。java -versionは今のターミナルの確認で、IDEの実際のJVMと同一とは限らない。
  2. 起動不可、起動後の不応答、特定プロジェクトだけの失敗を分ける。userdirのvar/log/messages.log等を時刻と合わせて確認する。パスやログには個人情報が含まれ得るので、そのまま公開しない。
  3. 既存のIDEを通常の方法で終了し、未保存データを保護する。1つのuserdirを複数プロセスで同時利用せず、lockファイルや未知のPIDを安易に削除/強制終了しない。
  4. 新しいuserdirとcachedirを明示して起動を比較する。設定をインポートせず、まず空の状態を見る。比較で変わってもプラグインやキャッシュの原因が確定したわけではない。
  5. 変わらなければ元の設定を消さず、JDK・配布版・権限・ログ・プロジェクト固有の問題を引き続き調べる。

userdirは単なるキャッシュではなく設定・追加モジュール・実行状態等を含みます。プロジェクトの保存場所も利用者次第なので、「ここを消してもデータは消えない」と保証しません。パス例を信じて削除せず、実際の設定先を確認します。

Windowsで診断用の引数を作る例

下の関数はPowerShell 7用です。既存のJDKパスと、新しい絶対パスを受け取り、起動引数の配列だけを返します。java.exeの存在を確認しますが、JDKの対応版やCPUを自動判定するものではありません。IDE/Javaを起動せず、ディレクトリも作成・削除しません。

#requires -Version 7.0
function New-NetBeansDiagnosticArguments {
    param(
        [Parameter(Mandatory)][string]$JdkHome,
        [Parameter(Mandatory)][string]$DiagnosticRoot
    )

    $jdk = (Resolve-Path -LiteralPath $JdkHome -ErrorAction Stop).Path
    if (-not (Test-Path -LiteralPath (Join-Path $jdk 'bin/java.exe') -PathType Leaf)) {
        throw 'JdkHome must point to a Windows JDK containing bin/java.exe.'
    }
    if (-not [IO.Path]::IsPathFullyQualified($DiagnosticRoot)) {
        throw 'DiagnosticRoot must be a new absolute path.'
    }
    $root = [IO.Path]::GetFullPath($DiagnosticRoot)
    if (Test-Path -LiteralPath $root) {
        throw 'Choose a new diagnostic directory; do not reuse existing settings.'
    }
    @('--jdkhome', $jdk, '--userdir', (Join-Path $root 'userdir'),
      '--cachedir', (Join-Path $root 'cachedir'))
}

同じターミナルに関数を読み込んでから、次のパスを実際のものへ変更します。最後の行はコメントのまま確認し、意図して起動するときだけ有効にします。実際の起動では新しい領域に設定・ログ等が作られます。診断領域も自動削除せず、内容を確認して扱ってください。

$NetBeans = 'C:\path\to\netbeans\bin\netbeans64.exe'
$Jdk = 'C:\path\to\supported-jdk'
$DiagnosticRoot = Join-Path ([IO.Path]::GetTempPath()) ('netbeans-check-' + [guid]::NewGuid())

if (-not (Test-Path -LiteralPath $NetBeans -PathType Leaf)) {
    throw 'Set NetBeans to the actual launcher path first.'
}
$LaunchArguments = New-NetBeansDiagnosticArguments -JdkHome $Jdk -DiagnosticRoot $DiagnosticRoot
# Review these paths before running the next line; the launcher can create files.
$LaunchArguments
# & $NetBeans @LaunchArguments

Linux/macOSの起動オプションも対象配布版で確認し、--jdkhome・--userdir・--cachedirに実在/新規の適切なパスを指定します。Apache 31のUnixランチャー検査では、--userdirだけの場合とcachedirも指定した場合で渡される引数が異なるため、領域を分ける目的なら両方を明示します。Windowsネイティブ起動やIDEのGUI全体の動作確認済みという意味ではありません。

根拠: 公式userdir説明、Apache 31のUnixランチャー。過去の不応答を再現した完成対処ではなく、元データを保持する切り分けです。

この記事の要点
  • NetBeans をインストール直後に反応しないときの対処
  • 確認候補: 起動JDKの対応版・実際の参照先・ユーザー設定。頻度だけで原因を断定しない
  • 対処1: NetBeans の対応 JDK 一覧を確認 → 該当バージョンの JDK へ切替
  • 対処2: netbeans.conf の netbeans_jdkhome=... で JDK パスを明示

 

Netbeansをインストールした直後、新規プロジェクトの作成等のボタンを押しても反応しないことがあります。起動JDKの不一致は候補の1つですが、この症状だけで原因や頻度は断定できません。

原因の見極め

  • 起動JDKの対応条件 — IDEの版と起動ログを照合する。非対応JDKだけであらゆるUI不応答を説明しない
  • CPU/アーキテクチャの不整合 — OS・ランチャー・JDK・ネイティブライブラリの対応を確認する
  • Netbeans 設定ファイルのJDKパスが古い
  • プラグインや索引作成等の影響 — 処理中のログと再現条件を確認し、名前だけで停止原因を決めない

対処法

1. 対応JDKバージョンを使う

次は確認した配布版ごとの起動JDKです。旧表の9/10/11や12.x、17以降をひとまとめにした対応は使いません。最新の配布条件とプロジェクト側の設定を別に確認してください。

Netbeans対応JDK
8.2(旧Oracle版)保守時は当時の配布要件を確認。新規導入先にしない
17(旧版)公式の実行対応: JDK 11 / 17 / 19
21(旧版)公式の実行対応: JDK 11 / 17 / 21
31公式の実行対応: JDK 21 / 25 / 26、27は初期対応

元記事は2018年の旧環境を扱っています。当時の個別症状を、すべてのJDK9以降や現在のNetBeansにも必ず起こる事象とは扱いません。手元の版と再現条件を記録して比較します。

2. 起動時のJDKを明示指定する

下の黒い表は旧環境のパス例です。ファイルを一括置換せず、使用している配布物の設定先を確認し、変更前の値を保持します。

システムに複数のJDKがある場合、Netbeansが想定外のJDKを掴むことがあります。netbeans.conf でJDKパスを明示します。

# $NETBEANS_HOME/etc/netbeans.conf
netbeans_jdkhome="C:\Program Files\Java\jdk-11"

次のコマンドもJDK11を固定した旧例です。現在の全NetBeansへ流用せず、対象配布版が対応するJDKの実パスへ置き換えます。

$ netbeans --jdkhome /path/to/jdk-11

3. ユーザー設定を削除せず別領域で比較する

設定ディレクトリの削除は通常の診断手順にしません。 下は過去のパス例で、現在の全配布版の保存場所ではありません。userdirとcachedirを区別し、実際の領域を記録してから新規の領域で比較します。

# Windows
C:\Users\ユーザー名\AppData\Roaming\NetBeans\バージョン
C:\Users\ユーザー名\AppData\Local\NetBeans\Cache\バージョン

# Linux/Mac
~/.netbeans/バージョン/
~/.cache/netbeans/バージョン/

既存領域を移動・リネームする前に、上のように新規のuserdir/cachedirを指定します。退避が必要な場合もIDE終了と対象パス・バックアップを確認し、診断中にプロジェクトや未保存データを失わないようにします。

4. ログを確認

# ユーザー設定ディレクトリ配下
.../var/log/messages.log

ログは起動条件や直近の例外を確認する材料です。末尾に名前が出たプラグインが必ず原因とは限らず、画面の不応答では別途スレッド情報等が必要な場合もあります。ログがないことだけで正常とは判断しません。

注意点

  • Apacheで最初のリリースは2018年のNetBeans 9。12から始まったわけではない。公式の履歴と版別要件を照合する
  • Windowsの場合、netbeans64.exe と netbeans.exe でアーキテクチャが違う場合がある。OSのbit数に合わせる
  • プロジェクト種別に必要なモジュール/プラグインを確認する。未導入というだけでフリーズの原因を断定しない
子ページ

子ページはありません

同階層のページ

同階層のページはありません

最近更新/作成されたページ