Javaアプリケーションを作成しましたが、いくつかのマシンで動作していますが、いくつかのマシンでは動作していません。私はそれがjreのためであるかどうかわからない。 アプリケーションがjreを使用するパスを見つける方法と、そのアプリケーションが特定の場所でjreを使用するようにする方法を教えてください。事前Javaアプリケーションに特定のjreを使用させます。
答えて
で
ありがとうございますしかし、問題は最も可能性の高いメジャーバージョンない限り、JREの不具合が異なるされていないことに注意してください、特定のJREを実行するスクリプトファイルを書き込むことができます。
JavaプログラムでJREを強制実行することはできません。遅すぎるためです。
java.home
システムプロパティの値をチェックすることによって、使用されているJREのパスを見つけることができます。例:JREを変更する
System.out.printf("java.home = %s\n", System.getProperty("java.home"));
は、あなたのアプリケーションを実行する方法については、特に、依存:
- あなたは、コマンド・ライン・インターフェースを介して、あなたのプログラムを実行している場合、あなたは
PATH
を変更する必要があります実行可能な正しいjava
を指すように環境変数を設定します。 - IDEでプログラムを実行している場合は、
JRE_HOME
という環境変数を定義してIDEを再起動するか、プロジェクトの実行コンフィギュレーションを変更する必要があります。
Javaのその他の有用なプロパティの詳細については、https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.htmlを参照してください。
手で質問に答えるために、Javaシステムプロパティは、あなたが求めて値を保持:
String jreLocation = System.getProperty("java.home");
String javaVersion = System.getProperty("java.version");
誤りがある場合は、あなたの問題は、Java(の異なるバージョンによって引き起こされる可能性として、私は、これらの二を追加たとえば、java.lang.UnsupportedClassVersionError)。
特定のJREを強制する観点から、実行中のJavaプログラムから強制的にJVMバージョンを実行することはできません(これはシェルスクリプトなどで行う必要があります)。 「java.home」の値をチェックして、必要なものでなければ終了しますが、これはシステムによって異なるため、これは賢明ではありません。 "java.version"がサポートされている値のセット内にない場合、エラーメッセージを表示して終了する方が少し良いオプションがあります。
ただし、プログラムを実行するために必要なすべてのシステムで動作するように、元の問題を解決するのが最善の方法です。この目的のために、これらの他のシステムでプログラムを実行するときに発生するエラーで新しい質問を開始することをお勧めします。
Javaアプリケーションで特定のJREが必要な場合は、アプリケーションをJREを含む「自己完結型」バンドルとしてパッケージ化することをお勧めします。すでに多くの人が指摘しているように、アプリケーションが起動したら、JREはすでに選択されており、唯一のオプションはシステム変数をチェックし、エラーメッセージでアプリケーションを終了することです。
自己完結型アプリケーションバンドルの作成プロセスの詳細は、「Oracleデプロイメントガイド:Self-Contained Application Packaging」を参照してください。
- 1. JavaアプリケーションでのJREのバンドル
- 2. 特定のJREを使用してJARファイルを実行する
- 3. 特定のコマンドでJavaアプリケーションを実行するようにNetBeansを設定する方法(または他のJREを使用する方法)
- 4. JREの特定のバージョンを使用してJARファイルを実行します
- 5. パッケージJREは、Javaアプリケーションのための
- 6. 私はJavaアプリケーションをJRE 6で動作させていますが、JRE 7では動作させていません。
- 7. java eeアプリケーションの特定のWeblogic管理対象サーバを使用
- 8. Java依存アプリケーションをMSIのJREにバンドルする方法
- 9. WebベースのJavaアプリケーション+ Jetty + JREをエンドユーザーに配信するBKM
- 10. Java JREのインストールベース?
- 11. Java EE Webアプリケーションの遅さの原因を特定する
- 12. OSX - Java JNIアプリケーションをコンパイルしてJREのみをインストールする
- 13. Eclipseプロジェクトによる特定のシステムJREの設定方法は?
- 14. applescriptを使用してアプリケーションの特定のウィンドウにフォーカスを設定します
- 15. JRE x86を使用しているWindows x64のJavaシリアルI/O
- 16. install4jを使用しても.jreをバンドルする場合でも、コンピュータにアプリケーションをデプロイできません。
- 17. オーディオデバイスを使用しているアプリケーションを特定します
- 18. Djangoに特定の小数点以下のピリオドを使用させます
- 19. Visual Studio 2017に特定のAndroidエミュレータを使用させる
- 20. cmakeに特定のOpenCVバージョンを使用させる
- 21. has_manyに特定の:foreign_keyを使用させる方法
- 22. LocalDBに特定のバージョンを使用させる方法
- 23. Jmap with Jreの使用
- 24. 特定のアプリケーション用のカスタムアンドロイドソフトキーボード
- 25. ZipFile.getEntryがJavaアプリケーションをハングさせます
- 26. サーブレットベースのWebアプリケーションの特定のページにのみHTTPSを使用
- 27. プラグインでプラグインのjava eclipseプロジェクトのJREをプログラムで設定する
- 28. 1.4用にコンパイルされたJavaコードを1.4 JREでコンパイルするには?
- 29. JavaアプリケーションにSea Glass LAFを使用できません
- 30. IIS6 Webサイトの特定のアプリケーションにhttpsを使用
JREが先に来て、あなたのアプリは後で来ます。特定のJREの中でアプリを実行させることはできません。アプリが「間違った」バージョンで実行されている場合、アプリを「正常に」終了することしかできません。 –