2016-06-15 5 views
9

アプリケーションにJREが組み込まれている状況があります。このアプリケーションには誤ってマッシュアップ(7.xバージョンのjava.exeと8.xバージョンのJRE)が付属しています。新しいバージョンのランタイム(8.x)を使用している旧バージョンのJava.exe(7.1)の意味

v。1.7 java.exeを実行しているプロセスが、プロセスエクスプローラを使用してv。1.8 Javaランタイムを使用していることを確認できます。ランタイムまたはバイナリが異常を検出せず、JVMの作成を中止したことに驚いています!

同じ意味合いは何ですか?セキュリティ上の問題 ?安定性の問題?私はjava.exeのソースコードを読んでいない。 java.exeバイナリの私の予備調査から、私はそれがスタブ以上であることがわかります。これは、USER32.dll、ADVAPI32.dll、COMCTL32.dllとは別に100種類のKERNEL32.DLL APIを呼び出します。

確かに、私たちは間違いを修正することができます。しかし、上記の異常を使用している現在のいくつかの生産システムには何か影響がありますか?はいの場合、彼らは何ですか?

+0

これはかなり役に立つはずですhttps://blogs.oracle.com/java-platform-group/entry/upgrading_major_java_versions_technical – piyushj

+0

@piyushj:ありがとうございます。それを見るでしょう。 – anjanb

答えて

1

java.exeは、a simple launcherである。 JVMまたはクラスライブラリのコードは含まれていません。その主な機能は、JREを見つけて、コマンドラインで渡された引数を使ってjvm.dllをロードすることです。

java.exeがなくてもInvocation APIを使用してJVMを起動できます。

java.c logは、JDK 7とJDK 8の間のランチャーにはあまり変更がないことを示しています。 JavaFXアプリケーションのランチャーサポートと、より良い引数検証のためのいくつかの修正があります。それでおしまい。したがって、アプリケーションがJDK 7ランチャーで正常に起動する場合は、明らかに何も心配する必要はありません。

+0

言い換えれば:「それは今まで働いていたかもしれない。 –

3

同じ意味合いは何ですか?セキュリティ上の問題 ?安定性 問題がありますか?

これらのすべて。

JVMバイナリ(あなたの場合はjava.exe)、それに付属する共有オブジェクト/ DLL、およびJava側を実装するJARファイルはすべて、設計されていないか、組み合わされたパッケージ以外のものとして実行されます。

Java 7とJava 8の間の互換性の問題の特定のリストは、外部のJVMパッケージ全体のコヒーレントなバージョン間で問題が発生しています。

あなたは既知のもの、外部の非互換性にインコヒーレント Javaのインストールの内部非互換性を追加しました。それらのリストを取得する方法はありません。誰もそのようなことを追跡しようとすることさえほとんどないことはほぼ確実です。

と表示されても、何がうまくいくのか、何がうまくいくのか、どれくらい時間がかかるのか分かりません。と表示されます。

+0

'java.exe'はJVMバイナリではありません。それは単なるランチャーです(http://stackoverflow.com/questions/26020872/totally-confused-with-java-exe/26025656#26025656)。 – apangin

+0

@apanginそして、一貫性のあるパッケージであると思われるものの1つのファイルが間違ったパッケージから来たと証明されたら、そのパッケージのすべての*ファイルは疑わしいものです。 Java 7の 'java.exe'を実行している問題に遭遇し、残りのJVMインストールが不明な点がある場合(質問のように)、Oracleにバグレポートを提出してみてください。それは破った*。あなたがどれくらい長くあなたがそれを離れて逃げることができるかを見てみることは、単なる*間違った*です。あなたは何が起こるか分からないので、あなたができるようになると直ぐに*それを修正します。何がうまくいかなかったかを理解して、もう一度やり直さないでください。 –

+0

あなたは一般的です。しかし、この場合、問題は既に発生しており、OPはその結果を評価しようとしています。私が言っていることは、ランチャーは標準化されたAPIを介してJVMと通信するJREの別のコンポーネントなので、結果はそれほど悪くないということです。 JVMはランチャーがなくても動作することが知られています。 – apangin

関連する問題