開発者の皆さん、Java の一般的な課題には、異なる JVM バージョンを必要とする複数のプロジェクトの管理が含まれます。 これにより、次のようなイライラするエラーが発生することがよくあります。
<code>Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.3.2 > Dependency requires at least JVM runtime version 17. This build uses a Java 11 JVM.</code>
この投稿では、Java 11 と Java 17 を同時に必要とするアプリケーションを実行するためのソリューションを検討します。
さまざまな JVM 要件を持つプロジェクトをやりくりしているときに、この問題に繰り返し遭遇しました。 JVM バージョンを手動で切り替えるのは面倒で、エラーが発生しやすくなります。 目標は、プロセスを自動化することです。
複数の JVM の実行:
単一のマシン上で複数の JVM を実行することは完全に可能です。各 Java アプリケーションは独自の JVM インスタンスを起動し、独立して動作します。 この分離により、アプリケーション間の競合が防止されます。
ただし、複数の JVM を同時に実行する場合のパフォーマンスのボトルネックを回避するには、十分なシステム リソース (CPU とメモリ) が重要です。
複数の Java バージョンの管理:
いくつかの戦略により、複数の Java インストールの管理が合理化されます。
JAVA_HOME
環境変数を設定すると、システムが正しい Java インストールに誘導されます。 Java 実行可能ファイルを含めるために PATH
変数を更新する必要があります。 Java 11 の場合、これは次のようになります:<code class="language-bash">export JAVA_HOME=$(/usr/libexec/java_home -v 11) export PATH=$JAVA_HOME/bin:$PATH</code>
<code class="language-bash">/path/to/java11/bin/java -jar your-application.jar</code>
JVM 選択の自動化:
理想的なソリューションは、プロジェクトの要件に基づいて JVM の選択を自動化します。 これを実現できるアプローチはいくつかあります。
ビルド ツール (Gradle、Maven): build.gradle
または pom.xml
ファイルのプロジェクト設定に基づいて、適切な Java バージョンを自動的に選択するようにビルド ツール (Gradle または Maven など) を構成します。 これは、一般的に推奨され、最も堅牢な方法です。
シェル スクリプト/バッチ ファイル: プロジェクトに必要な JVM バージョンを検出し、正しい Java 実行可能ファイルを使用してアプリケーションを起動するスクリプトを作成します。 これにより、ある程度の自動化が実現しますが、より手動による構成が必要になります。
プロジェクト固有の環境変数: Java バージョンを指定して、プロジェクトごとに個別の環境変数を作成します。 アプリケーションはこれらの環境変数を読み取り、どの JVM を使用するかを決定できます。
以下のコメント欄で、JVM の選択を自動化するための提案やベスト プラクティスをお待ちしています。 知識を共有して Java 開発をよりスムーズにしましょう!
参考文献:
以上が同じ PC 上で複数の JVM を実行するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。