Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

修正:VMの初期化中にエラーが発生し、オブジェクトヒープ用に十分なスペースを予約できませんでした

最近のJavaアプレットは一般的なWebテクノロジーではありませんが、Java仮想マシンをLinuxサーバーに直接デプロイする理由は無数にあります。 Linux javaコマンドをディスクリートハードウェア上または独自のVM内で完全に実行しようとすると、「VMの初期化中にエラーが発生し、オブジェクトヒープ用の十分なスペースを予約できませんでした」というメッセージが表示される場合があります。

コマンドを実行するのに十分なRAMがある可能性が高いため、これはおそらくかなり奇妙に見えますが、これは主に、物理メモリページと仮想メモリページが使用される方法の特定の癖によるものです。比較的大きなサイズを指定すると、このメッセージを完全にバイパスして、他の場合と同じようにjavaコマンドを実行できるようになります。

方法1:コマンドラインオプションの使用

Javaを実行しようとしてこのメ​​ッセージが表示された場合は、おそらくすでにfreeコマンドを実行して、プログラムを実行するための十分なメモリが確保されていることを確認しています。

修正:VMの初期化中にエラーが発生し、オブジェクトヒープ用に十分なスペースを予約できませんでした

テストマシンには2.3GBの物理RAMがあり、仮想メモリの1ページはまだ使用されていないことに注意してください。メモリが不足していることに気付いた場合は、実行中の他のものを閉じてから、もう一度試してください。一方、空きメモリが十分にあることに気付いた人は、サイズを直接指定してみることができます。

たとえば、私たちのマシンでは、コマンドをjava -Xms256m -Xmx512Mとして実行でき、それ以外の場合は期待どおりに機能しました。これにより、Java仮想マシンが起動時に予約しようとするヒープサイズが制限されます。制約のない仮想マシンは、仮想的に異常なことを行う可能性があるため、それ以外の場合は無料のシステムでエラーメッセージをスローする可能性があります。適切な組み合わせを見つける前に、これら2つの値を試してみることもできます。

JVMは、GNU / Linuxの実行に使用している可能性のあるVMのタイプとは関係がないため、これは、実行している対象に関係なく問題になる可能性があります。

方法2:変数をエクスポートして変更を永続的にする

有効な値を見つけたら、それをエクスポートして、そのセッションで永続的にすることができます。たとえば、bashコマンドプロンプトからexport _JAVA_OPTIONS =’-Xms256M -Xmx512M’を使用すると、サーバーからログアウトするまで、他のオプションなしでjavaコマンドを単独で実行できました。

別のセッションにログインしたときに再度実行する必要があったため、javaコマンドを頻繁に使用する予定がある場合は、関連する起動スクリプトに追加することをお勧めします。 .bash_loginファイルにこの行を追加しました。ログインプロンプトを使用するたびに、再度実行しなくても機能するように見えましたが、別のシェルで作業している場合は、別の場所を探す必要があるかもしれません。

特定のハードウェア構成のみがこのエラーメッセージをトリガーすることに気付いたかもしれません。これは通常、大量の物理RAMを搭載しているが、使用方法の上限が低いマシンで発生するためです。 Javaは、巨大なブロックを割り当てようとしますが、それはできないと言われるだけで、メモリが不足していると解釈されます。

方法3:現在のJavaオプションを印刷する

コマンドラインで作業していて、現在_JAVA_OPTIONS値を設定しているものへのクイックリファレンスが必要な場合は、echo $ _JAVA_OPTIONSを実行するだけで、現在の値がすぐに出力されます。これは、試すべき正しい数字を見つけようとしているときのトラブルシューティングに役立ちます。

この修正では他の操作は必要ありませんが、仮想メモリのショートエンドに本当に気付いた場合、Javaは「オブジェクトヒープ用に十分なスペースを予約できませんでした」というメッセージをスローすることに注意してください。この場合は、現在実行中のプロセスを再確認し、それがオプションである場合はサーバーを再起動することをお勧めします。より多くのスワップスペースを作成することもできますが、これが問題である場合は、通常、他の方法で修正することをお勧めします。

まれに、設定が正しいように見えても機能しない場合は、64ビットJavaパッケージがインストールされていることを確認してください。これは、この問題の影響を受けないためです。連続したメモリ要件は、32ビットバージョンのJavaにのみ適用されます。いくつかのケースで、64ビットバージョンが32ビット仮想マシンを作成しようとしたため、コマンドラインで-d64オプションを指定すると修正されました。


  1. Windows 11 で Microsoft Excel を実行するのに十分なメモリがないというエラーを修正する方法

    Windows 11 で「Microsoft Excel を実行するのに十分なメモリがありません」というエラーが発生しますか?では、これは何を意味し、デバイスで Excel アプリにアクセスできないのはなぜでしょうか?はい、あなたの心は今すぐ質問でいっぱいになるはずです!心配しないで; Microsoft Excel は Office スイートの一部であり、スプレッドシート、データ入力操作、チャート、グラフ作成などを行うための最も人気のあるアプリの 1 つです。これは、データの整理と財務分析の実行に使用できる最も直感的なアプリの 1 つです。 そのため、Windows PC で Ex

  2. 「Windows 10 Update に十分なディスク容量がありません」というエラーを修正する方法

    アップデートにより、オペレーティング システムは最新の機能とセキュリティ強化にアクセスできるようになります。その結果、PC を頻繁に更新することをお勧めします。ただし、Windows は、インストール プロセスを開始する前に、内部ディスクに十分なストレージ容量があることを確認します。十分なディスク容量がない場合、「Windows にはより多くの容量が必要です」または「ドライブに十分な容量がありません」などのエラー メッセージが表示されます。これにもかかわらず、Windows 10 コンピューターを更新する必要があります。この問題を解決する方法を説明します。 「Windows 10 アップデート