V JDK は Java 言語のソフトウェア開発ツール パッケージです。これがないと Java プログラムをコンパイルできません。現在、多くの JDK ツールが存在していますが、最も一般的に使用されているのは java.exe、javac.exe、jar などです。これら以外に、他には何がありますか?この記事の著者である Joe は長年の Java 開発経験を持ち、「5 JDK Tools Every Java Developer Should Know」という記事を著者がまとめたものです。以下はその翻訳です。
1.javap
javapは、Javaコンパイラによって生成されたバイトコードを表示できるJavaクラスファイル逆アセンブラであり、コードを分析するための優れたツールです。 javap を使用してこの Hello World コードをコンパイルし、分解してみましょう。public class HelloWorld { public static void main(String... args) { System.out.println("Hello World!"); } }
Compiled from "HelloWorld.java" public class HelloWorld { public HelloWorld(); public static void main(java.lang.String...); }
Compiled from "HelloWorld.java" public class HelloWorld { public HelloWorld(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."":()V 4: return public static void main(java.lang.String...); Code: 0: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 3: ldc #3 // String Hello World! 5: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 8: return }
2.jvisualvm
jvisualvmは、グラフィカルインターフェースウィンドウを提供し、Javaアプリケーションの実行時情報を直感的に把握できるツールです。 jvisualvm は、jmp、jinfo、jstat、jstack、JConsole などの多くのツールを統合します。これは、JDK 6 Update 7 以降、JDK の一部となっています。 Java ガベージ コレクションの監視と分析に関するこの記事では、jvisualvm を使用しました。jvisualvm の使用方法を確認してみるとよいでしょう。3.jcmd
jcmd は主に、診断コマンド要求を Java JVM に送信するために使用されます。JVM プロセスに jcmd パラメーター リストがない場合、jcmd はすぐに実行されます。これは、jps ツールと同等であり、jconsole をパラメータとして jcmd に渡しました。これは、プロセス ID (pid) を通じても実現できます。C:\Users\Cycle>jconsole C:\Users\Cycle>jcmd JConsole help 3344: The following commands are available: JFR.stop JFR.start JFR.dump JFR.check VM.native_memory VM.check_commercial_features VM.unlock_commercial_features ManagementAgent.stop ManagementAgent.start_local ManagementAgent.start Thread.print GC.class_stats GC.class_histogram GC.heap_dump GC.run_finalization GC.run VM.uptime VM.flags VM.system_properties VM.command_line VM.version help
3344:289.977 sVM.uptimeはJavaアプリケーションの具体的な実行時間を示します。 デバッグ時、同時ロックのスレッドスタックオーバーフローには以下のパラメータを使用できます。 jcmd
4.jhat
jhatの正式名称はJavaヒープ解析ツールです。 jhat は主にヒープ ファイルの解析と参照に使用されますが、jhat は視覚化ツールに近い場合もあります。 jhat はヒープ ダンプを解析して Web サーバーを起動し、ユーザーはブラウザでヒープを表示できるようになります。 jhat は、オブジェクト クエリ言語 (oql) といくつかの事前に設計されたクエリをサポートしています。 Jmap ツールでヒープ ダンプを生成するには、-dump パラメータを使用する必要があります。以下は、jhat ツールが使用できるパラメータのリストです:C:\Users\Cycle>jhat -help Usage: jhat [-stack ] [-refs ] [-port ] [-baseline ] [-debug ] [-version] [-h|-help] -J Pass directly to the runtime system. For example, -J-mx512m to use a maximum heap size of 512MB -stack false: Turn off tracking object allocation call stack. -refs false: Turn off tracking of references to objects -port : Set the port for the HTTP server. Defaults to 7000 -exclude : Specify a file that lists data members that should be excluded from the reachableFrom query. -baseline : Specify a baseline object dump. Objects in both heap dumps with the same ID and same class will be marked as not being "new". -debug : Set debug level. 0: No debug output 1: Debug hprof file parsing 2: Debug hprof file parsing, no server -version Report version number -h|-help Print this help and exit The file to read For a dump file that contains multiple heap dumps, you may specify which dump in the file by appending "#" to the file name, i.e. "foo.hprof#3". All boolean options default to "true"
C:\Users\Cycle\Desktop>jhat heap.bin Reading from heap.bin... Dump file created Sun Nov 16 19:26:35 IST 2014 Snapshot read, resolving... Resolving 641209 objects... Chasing references, expect 128 dots.................. Eliminating duplicate references..................... Snapshot resolved. Started HTTP server on port 7000 Server is ready.
5.Oracle Java Mission Control
JVM 統合戦略の一環として、主に HotSpot と JRockit VM を統合するために使用されます。現在、JRockit Mission Control は Java SE の標準バージョンで利用できます。 Java Mission Control (JMC) は、HotSpot JVM 用の Java Flight Recorder と連携して、コア データとイベントを記録します。これはチューニング ツールであり、Oracle JDK と連携して動作します。問題が発生すると、このデータを分析に使用できます。
開発者は jmc コマンドを使用して JMC ツールを作成できます。以上がすべての Java 開発者が知っておくべき 5 つの JDK ツールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。