トップ その他 IT用語 JVM

JVMとは―Java仮想マシン。役割やJREとの違い、JVM Profilerなど。

JVM(Java仮想マシン)とは何かをテーマに、役割やJREとの違い、JVM Profilerなどの情報をまとめています。

目次

この記事の目次です。

1. JVMとは
2. JVMの役割
3. JREとの違い
4. JVM Profiler
5. JVM 引数

更新履歴

1. JVMとは

JVM(Java Virtual Machine)とは、Javaバイトコードを そのプラットフォームのネイティブコードに変換して実行するソフトウェアです。

2. JVMの役割

Java言語で開発されたソフトウェアは、 配布時にはプラットフォームから独立した独自の形式(Javaバイトコード)になっており、 これを実行するプラットフォーム固有の形式(ネイティブコード)に変換するソフトウェアを用意して、 変換しながら実行します。この変換と実行を行なうのがJVMです。

つまり、JVMをインストールすれば、 OSの違いを吸収してクラスファイルを実行してくれるので、 プラットフォームに依存しない、 いわゆるマルチプラットフォームを実現できるということです。

3. JREとの違い

JREは、単体でパッケージとして配布されたり、JDKなどに含まれているJavaの実行環境です。 JVMはこのJREに含まれるソフトウェアです。 JVMとJREの違いは、JREにはJVM以外にJavaのクラスライブラリなどが含まれる点です。

JVMとJREとJDKの位置づけ

4. JVM Profiler

JVM Profilerは、Uberが開発した分散型のプロファイラです。 現在はオープンソースになっています。

5. JVM 引数

JVM 引数は、Javaコマンド実行時の引数で、JVM実行時に指定するオプションです。

JVM引数の標準オプション

JVM引数の標準オプションは、Javaコマンドの「-help」オプションで確認できます。

java -help
使用方法: java [-options] class [args...]
           (クラスを実行する場合)
   または  java [-options] -jar jarfile [args...]
           (jarファイルを実行する場合)
optionsには次のものがあります。
    -d32          使用可能な場合は32ビットのデータ・モデルを使用する
    -d64          使用可能な場合は64ビットのデータ・モデルを使用する
    -server       "server" VMを選択する場合
                  デフォルトVMはserverです.

    -cp <ディレクトリおよびzip/jarファイルのクラス検索パス>
    -classpath <ディレクトリおよびzip/jarファイルのクラス検索パス>
                  クラス・ファイルを検索するディレクトリ、
                  JARアーカイブおよびZIPアーカイブの;で区切られたリストです。
    -D<name>=<value>
                  システム・プロパティを設定する
    -verbose:[class|gc|jni]
                  詳細な出力を行う
    -version      製品バージョンを出力して終了する
    -version:<value>
                  警告: この機能は非推奨であり、詳細のリリースで
                  廃止されます。
                  指定したバージョンを実行に必須にする
    -showversion  製品バージョンを出力して続行する
    -jre-restrict-search | -no-jre-restrict-search
                  警告: この機能は非推奨であり、詳細のリリースで
                  廃止されます。
                  ユーザーのプライベートJREをバージョン検索に含める/除外する
    -? -help      このヘルプ・メッセージを出力する
    -X            非標準オプションに関するヘルプを出力する
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  指定した粒度でアサーションを有効にする
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  指定した粒度でアサーションを無効にする
    -esa | -enablesystemassertions
                  システム・アサーションを有効にする
    -dsa | -disablesystemassertions
                  システム・アサーションを無効にする
    -agentlib:<libname>[=<options>]
                  ネイティブ・エージェント・ライブラリ<libname>をロードする。例: -agentlib:hprof
                  -agentlib:jdwp=helpと-agentlib:hprof=helpも参照
    -agentpath:<pathname>[=<options>]
                  フルパス名でネイティブ・エージェント・ライブラリをロードする
    -javaagent:<jarpath>[=<options>]
                  Javaプログラミング言語エージェントをロードする。java.lang.instrumentを参照
    -splash:<imagepath>
                  指定したイメージでスプラッシュ画面を表示する
詳細はhttp://www.oracle.com/technetwork/java/javase/documentation/index.htmlを参照してください。

JVM 引数の非標準オプション

JVM 引数の非標準オプションは、ヒープサイズの指定でおなじみの「-X」から始まるオプションです。 これはJavaコマンドの「-X」オプションで確認できます。

java -X
    -Xmixed           混合モードの実行(デフォルト)
    -Xint             インタプリタ・モードの実行のみ
    -Xbootclasspath:<;で区切られたディレクトリおよびzip/jarファイル>
                      ブートストラップのクラスとリソースの検索パスを設定する
    -Xbootclasspath/a:<;で区切られたディレクトリおよびzip/jarファイル>
                      ブートストラップ・クラス・パスの最後に追加する
    -Xbootclasspath/p:<;で区切られたディレクトリおよびzip/jarファイル>
                      ブートストラップ・クラス・パスの前に付加する
    -Xdiag            追加の診断メッセージを表示する
    -Xnoclassgc       クラスのガベージ・コレクションを無効にする
    -Xincgc           増分ガベージ・コレクションを有効にする
    -Xloggc:<file>    タイムスタンプが付いたファイルにGCステータスのログを記録する
    -Xbatch           バックグラウンドのコンパイルを無効にする
    -Xms<size>        Javaの初期ヒープ・サイズを設定する
    -Xmx<size>        Javaの最大ヒープ・サイズを設定する
    -Xss<size>        Javaのスレッド・スタック・サイズを設定する
    -Xprof            CPUプロファイル・データを出力する
    -Xfuture          将来のデフォルトを見越して、最も厳密なチェックを有効にする
    -Xrs              Java/VMによるOSシグナルの使用を削減する(ドキュメントを参照)
    -Xcheck:jni       JNI関数に対する追加のチェックを実行する
    -Xshare:off       共有クラスのデータを使用しようとしない
    -Xshare:auto      可能であれば共有クラスのデータを使用する(デフォルト)
    -Xshare:on        共有クラス・データの使用を必須にし、できなければ失敗する。
    -XshowSettings    すべての設定を表示して続行する
    -XshowSettings:all
                      すべての設定を表示して続行する
    -XshowSettings:vm すべてのVM関連の設定を表示して続行する
    -XshowSettings:properties
                      すべてのプロパティ設定を表示して続行する
    -XshowSettings:locale
                      すべてのロケール関連の設定を表示して続行する

-Xオプションは非標準なので、予告なく変更される場合があります。

更新履歴

この記事の更新履歴です。

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Eclipse /gcc /gdb /Git /g++ /JDK /JUnit /ZAP

技術・仕様
Ajax /CORBA /Java EE(旧称J2EE) /JNI

ライブラリ/Framework/CMS
bootstrap /jQuery /Lucene /MyBatis /Spring /Struts /WordPress

Web API
Google Maps

ITインフラOSとミドルウェア
Linux /Windows /シェル
Apache/Tomcat /MySQL /Redis /Solr

ITインフラサーバー
Web公開サーバー

ITインフラネットワーク
プログラミング /構築

ITインフラセキュリティ
公開サーバーのセキュリティ

PC製品
ZOTAC

SI
ホームページの作り方 /小さな会社のISMS

その他
IT用語 /ITスキル体系

スポンサーリンク

関連サイト内検索ツール

zealseedsおよび関連サイト内のページが検索できます。

IPアドレス確認ツール

あなたのグローバルIPアドレスは以下です。

3.236.8.46

HTMLの表示色確認ツール

パスワード生成ツール

文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。

ここに生成されます。

スポンサーリンク