web-dev-qa-db-ja.com

Java仮想マシンとは何ですか?Javaとは何の関係がありますか?

MacbookAirにEclipseをインストールしようとしていました。インストーラーを実行すると、このメッセージが表示されます

enter image description here

他のアプリのようにJVM専用の公式ページはないようです。 「installjvm」を検索すると、「 ダウンロードJava "」ページが表示されました。

とにかくこのページから最新のJavaをインストールしましたが、メッセージはまだそこにあり、混乱を招きます。

質問は次のとおりです。

  1. JVMがJava "anywhere"を有効にすることを意図している場合、最新のJavaをインストールした後、すでにインストールされているべきではありませんか?

  2. グーグルで検索するとたくさんのページが表示されますが、どれも本物のページのようには見えません。Java.comでjvmを検索しても、何も役に立ちません。

    このような人気のあるツールを見つけるのが難しいのはなぜですか。JVMをダウンロードするにはどこに行けばよいのでしょうか。

1
shenkwen

JVMとは何ですか?

Java仮想マシン(JVM)は、Javaバイトコードを実行するインタープリターです。

Javaプログラムをコンパイルすると、出力はJavaバイトコードになり、ネイティブJVMを備えた任意のコンピューターで実行できます。

Javaプログラミング言語では、すべてのソースコードは最初に.Java拡張子で終わるプレーンテキストファイルで記述されます。

これらのソースファイルは、javacコンパイラによって.classファイルにコンパイルされます。

.classファイルには、プロセッサにネイティブなコードは含まれていません。代わりに、バイトコードが含まれています— Java仮想マシン(JVM)の機械語。

次に、Javaランチャーツールは、Java仮想マシンのインスタンスを使用してアプリケーションを実行します。

enter image description here

Java VMは多くの異なるオペレーティングシステムで利用できるため、同じ.classファイルをMicrosoft Windows、Solaris™オペレーティングシステム(Solaris)で実行できます。 OS)、Linux、またはMacOS。

Java SE HotSpot at a Glanceなどの一部の仮想マシンは、実行時に追加の手順を実行して、アプリケーションのパフォーマンスを向上させます。これには、パフォーマンスのボトルネックの発見や(ネイティブへの)再コンパイルなどのさまざまなタスクが含まれます。コード)頻繁に使用されるコードのセクション。

enter image description here

ソース Javaテクノロジー について


では、JVMをダウンロードするにはどうすればよいですか?

Javaランタイム環境(JRE)にはJVMが含まれています。

  • Javaプログラムを実行しているだけの場合は、JREで十分です。

Java Development KitはJREのスーパーセットです(したがって、JVMも含まれています)。たとえば、Javaプログラムの開発に必要な他のツールも含まれています。コンパイラ。

  • Javaプログラムを開発している場合は、JDKをダウンロードする必要があります。

JREとJDKの両方を http://www.Oracle.com/technetwork/Java/javase/downloads/index.html からダウンロードできます。


では、なぜエラーメッセージが表示されるのですか?

すでにインストールしたJVMのバージョンは、インストールしようとしているEclipseのバージョンに対して古すぎます。

新しいバージョンを取得するには、新しいJREまたは新しいJDKのいずれかをインストールする必要があります。どちらにもJVMが含まれています。


とにかくこのページから最新のJavaをインストールしましたが、メッセージはまだあります

問題の潜在的な解決策は、Java6(Apple自体によって提供される)をアンインストールし、システムにJava7のみをインストールすることです。これは、古いJava6をどうしても必要とするアプリケーションがない場合にのみ適用されます。インストールするバージョン。

AppleのようなJava6インストールを削除するには、ターミナルを開いて次の手順を実行します。

Sudo rm -rf /System/Library/Java/JavaVirtualMachines/1.6.0.jdk

この手順を実行すると、Java7 byOracleのみがシステムにインストールされます。確認するには、別のターミナルを開いて次の手順を実行します。

Java -version 

「Javaバージョン「1.7.0_XX」のようなものが表示されます。XXはJava7インストールの現在の更新バージョンです。そうでない場合:次の手順に進みます。

Java_HOME変数を再定義します(Eclipseやその他の開発者ツールなどのIDEをサポートします...)。これは、「アクティブ」Javaインストールがシステム内のどこにあるかを検出するのに役立ちます。ターミナルと(:最初にXXを置き換えてください!):

Sudo rm /Library/Java/Home

Sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.7.0_XX.jdk/Contents/Home /Library/Java/Home

その後、Eclipseを新規インストールすると、システム内のJava7が検出され、このバージョンですぐに使用できるようになります。 Eclipseで次のようにナビゲートすることにより、インストールされたEclipseを変更してこのインストールを使用できます。

Preferences-> Java-> Installed JREs

次に、古いJava6システムエントリを削除し、Java7という名前の新しいパス(上記を参照)を追加します。

インストールしたJava 7ですが、Eclipseは1.6はこの製品には適していない by MWiesner

5
DavidPostill

このJDKには、JVMとその他のJava開発 http://www.Oracle.com/technetwork/Java/javase/downloads/index-jsp-138363)があります。 html スクリーンショットのあるメッセージは、すでにJVM 1.6を使用しているが、1.7以上が必要であることを示しています。ただし、JDKは必要ありません。かなり大きいです。

無料Javaダウンロード、JVMが含まれる」というこのリンク
https://Java.com/en/download/ Googleによると、JREにはJVMといくつかのクラスが含まれています。もう1つのオプションは、JVMと開発者向けのツールを含むJDKです。開発者でない限り、JDKを入手するよりもJREが必要です。どちらの方法でも、JVMを取得できます。

プログラムの一覧表示を含むMacの任意の部分に移動して、バージョン1.6を削除できるかどうかを確認してください。そのメッセージを表示するプログラムにはJava 1.6のみが表示され、最新バージョンは表示されないようです。パスを確認してくださいecho $PATHそして、あなたのパスにあるJavaバージョン)を見つけてください。

このコマンドは、gnuwin32を搭載したWindowsで機能します

C:\Users\harvey>Java -showversion 2>&1 | head -n 1
Java version "1.8.0_11"

LinuxやMacでも動作すると思います

$ Java -showversion 2>&1 | head -n 1
Java version "1.8.0_11"

または、Java -showversionで、出力の最初の行を見ると、バージョンが表示されます。

1
barlop