(Translated by https://www.hiragana.jp/)
あなたの知らないJDKの便利ツールたち:安藤幸央のランダウン(43) - @IT

あなたのらないJDKの便利べんりツールたち安藤あんどうさいわいひさしのランダウン(43)

「Java News.jp(Javaにかんする最新さいしんニュース)」の安藤あんどうさいわいひさしが、CoolなプログラミングのためのノウハウやTIPS、筆者ひっしゃ経験けいけんなどを「Rundown」(あし要点ようてん説明せつめい)でおとどけします(編集へんしゅう

» 2008ねん11月13にち 1000ふん 公開こうかい

標準ひょうじゅんJDKにふくまれる便利べんりなツール

 読者どくしゃみなさんは、最近さいきんJDKJava SE)に、開発かいはつやデバッグに便利べんりあたらしいツールがふくまれていることをごぞんじでしょうか? ふるくからのJava開発かいはつしゃは、ふる時代じだいのJDKのツールしからず、一方いっぽうあたらしいJava開発かいはつしゃEclipse/NetBeansなどの統合とうごう開発かいはつ環境かんきょうれてしまい、こまかなコマンドツールをじか使つか状況じょうきょうってきているかもしれません。

 そこで今回こんかいは、最近さいきんJava SE 6ふくめて比較的ひかくてきあたらしいとおもわれるツールを以下いかの5種類しゅるいけて紹介しょうかいします。

 「こんなツールがJDKにいてるなんてらなかった!」というあらたな発見はっけんがあればさいわいです。

図1 フォルダ「C:\Program Files\Java\jdk1.6.0_10\bin」にあるファイル(Java SE Development Kit(JDK)6 Update 10をWindows XPにインストールした場合) 1 フォルダ「C:\Program Files\Java\jdk1.6.0_10\bin」にあるファイル(Java SE Development Kit(JDK)6 Update 10をWindows XPにインストールした場合ばあい

 なかには正式せいしきなサポートがいのものもふくみますので、ご注意ちゅういください。また、残念ざんねんながら現在げんざいのところWindows環境かんきょうでは利用りようできないツールもあります。

プロファイリングようツール

jvisualvm.exe
 プラグインによる拡張かくちょう可能かのう統合とうごうプロファイラ


 「VisualVM」は機能きのう拡張かくちょう可能かのうなプロファイラです。起動きどうアプリケーションの概要がいようやヒープの様子ようすGC(ガベージ・コレクション)の実行じっこうじょうきょうなどのこまかなモニタリング機能きのう、スレッドの状態じょうたい表示ひょうじ、CPU/メモリのプロファイリングといったさまざまな機能きのうあわちます。

 VisualVMから強制きょうせいてきにGCを実行じっこうし、そのさいいをることもできます。プロファイリング用途ようとのみならず、実行じっこうにどのような状況じょうきょう動作どうさしているのかをこまかくることのできるツールです。

図2 VisualVMの使用例 2 VisualVMの使用しようれい

 また、基本きほんとなるプロファイリング機能きのう充実じゅうじつしていて、どの部分ぶぶんホットスポット処理しょり時間じかんがかかるネックの部分ぶぶん)なのかを簡単かんたんつけせます。導入どうにゅうもしやすく平易へいい使つかえるツールです。

jconsole
 システム情報じょうほうやメモリ使用しようりょう確認かくにんするためのコンソール


 「Jconsole」は、Java VM監視かんしようツールです。JMX(Java Management Extensions)に対応たいおうし、メモリ利用りようじょうきょうをグラフで表示ひょうじします。ローカルJava VMとリモートJava VMの両方りょうほう対応たいおうしています。

図3 Jconsoleの使用例 3 Jconsoleの使用しようれい

 あらたに、スレッドあいだのデッドロックを検知けんちするための専用せんようボタンが用意よういされ、「オンデマンドアタッチ機能きのうにより、起動きどうちゅうのJava VMの情報じょうほうたいときにられるようになりました。

トラブルシューティング・情報じょうほう取得しゅとくのためのツール

jinfo
 構成こうせい情報じょうほう取得しゅとく


 「jinfo」は、「jps」(後述こうじゅつ)によって取得しゅとくされたプロセスIDの構成こうせい情報じょうほうるためのツールです。また、コアダンプファイルを指定していして、Javaシステムプロパティやバージョン情報じょうほう、Java VM起動きどうのオプションなどを把握はあくできます。リモートデバッグサーバを利用りようして構成こうせい情報じょうほうることもできます。

jhat
 Javaヒープ解析かいせきツール


 「jhat」は、ヒープダンプファイルを指定していして、ヒープを解析かいせきするためのツールです。hprofオプションや、つぎ紹介しょうかいする「jmap」が出力しゅつりょくするバイナリファイルを利用りようします。jhatはWebサーバとして動作どうさし、解析かいせき結果けっかをWebブラウザで確認かくにんできます。パフォーマンスチューニングのさいには、プロファイリングは必須ひっすなので、標準ひょうじゅんのツールだけで詳細しょうさい情報じょうほうられるのは便利べんりです。

jmap
 メモリマップ


 「jmap」は、指定していしたJava VMのプロセスマップやヒープ情報じょうほう、クラスローダの情報じょうほう取得しゅとくできます。オプションによるこまかな指定していで、ヒープサマリーやヒストグラム、ヒープの統計とうけいデータなどを取得しゅとくできます。前述ぜんじゅつのjhatとわせることで効果こうか発揮はっきします。

jsadebugd
 サービスアビリティエージェントデバッグデーモン


 「jsadebugd」は、jps(後述こうじゅつ)で取得しゅとくされたプロセスIDをもとに、デバッグサーバとして機能きのうするツールです。RMI(Remote Method Invocation)経由けいゆでリモートクライアントからの監視かんし情報じょうほうわせに応答おうとうするデーモンとして機能きのうします。

jstack
 スタックトレース取得しゅとく


 「jstack」は、Java VMのスタック情報じょうほう取得しゅとくできます。具体ぐたいてきには、クラスめいやメソッドめい、バイトコードインデックス、くだり番号ばんごう取得しゅとくできます。またWindows であれば、実行じっこうちゅうに[Ctrl]+[Break]キーをすと、スレッドダンプするのと同様どうよう情報じょうほう取得しゅとくできます。

監視かんしツール

jps
 仮想かそうマシンプロセスステータスツール(きゅう、jvmps)


 「jps」は、Java VMのプロセスIDをリストアップするツールです。jpsを実行じっこうしたユーザーが権限けんげんつプロセスIDのみが取得しゅとくできます。後述こうじゅつする「jstatd」を起動きどうしたリモートマシンのプロセスIDをることもできます。

jstat
 仮想かそうマシンプロセスステータスツール(きゅう、jvmps)


 「jstat」は、Java VMのGCなどの計測けいそく表示ひょうじするためのツールです。ヒープメモリの状態じょうたい、クラスローダの統計とうけい情報じょうほう、Permanent領域りょういき状態じょうたいなどをることができます。データの取得しゅとく間隔かんかく指定していして、GCの効果こうか調しらべたり、メモリーリークの監視かんし可能かのうです。

jstatd
 仮想かそうマシンjstatデーモン(きゅう、perfagent)


 「jstatd」は、前述ぜんじゅつのjstatのリモート監視かんしようのデーモンです。リモートサーバの監視かんしログをのこしておきたいときに便利べんり使つかえます。

配備はいび補助ほじょツール

pack200
 Jarパックツール


 「pack200」は、圧縮あっしゅくりつたかいJarファイルをつくることのできるツールです。通常つうじょうのjarコマンドはzip圧縮あっしゅくでファイルぐんを1つにまとめられますが、pack200はgzip圧縮あっしゅくツールをベースとしたよりこう圧縮あっしゅくりつほこるJarファイル作成さくせいツールです。jarやzip、gzipについてくわしくりたい読者どくしゃは、下記かき記事きじ参考さんこうにするといいでしょう。

 さらに、Jarファイルを作成さくせいするさいに、デバッグ情報じょうほう削除さくじょしてよりファイルをちいさく圧縮あっしゅくすることもできます。ネットワークで転送てんそうされるJarファイルをすこしでもちいさくしたいときに有効ゆうこう方法ほうほうです。

unpack200
 Jarアンパックツール


 「unpack200」は、さきほどのpack200のぎゃくおこない、こう圧縮あっしゅくのJarファイルを展開てんかいするためのツールです。pack200で圧縮あっしゅくされたJarファイルを通常つうじょうのJar圧縮あっしゅくファイルに変換へんかんする場合ばあいにも利用りようできます。

extcheck
 Jarの競合きょうごう検出けんしゅつするユーティリティ


 「extcheck」は、現在げんざい使つかわれている拡張かくちょう機能きのうぐんのJarファイルと、調しらべたいJarファイルとの競合きょうごう調査ちょうさできます。競合きょうごう調査ちょうさとは、あたらしいJarファイルを利用りようするまえに、すでにおなじJarファイルや、あたらしいバージョンのJarファイルが存在そんざいしないかどうかを調しらべることです。

 すでにJava環境かんきょうがインストールされている環境かんきょう追加ついか環境かんきょうととのえる場合ばあいや、Jarファイルが多数たすうある複雑ふくざつ環境かんきょう把握はあくするさい役立やくだつツールです。

スクリプティングツール

jrunscript
 スクリプト実行じっこう環境かんきょう環境かんきょう


 「jrunscript」は、「jrunscript -e "print('hello world')"」という使つかかたで、JavaScriptのプログラムを直接ちょくせつ実行じっこうしたり、インタラクティブモードで逐一ちくいちプログラムを実行じっこうできる環境かんきょうです。標準ひょうじゅん環境かんきょう利用りようできるのはJavaScript(Rhino実装じっそうによるECMAScript)ですが、ほかにもJavaFXなどのスクリプト言語げんごでも利用りようできます。

 また、指定していしたスクリプトファイルを実行じっこうするといったバッチてき利用りよう方法ほうほう可能かのうです。おもにサーバサイドで活用かつようすることを想定そうていしていて、Javaとの連携れんけい簡単かんたんなテストや設定せっていファイルの記述きじゅつ操作そうさなどに便利べんり使用しようできます。

トラブルにそなえ、未知みちのツールを便利べんりなツールに

 本稿ほんこう紹介しょうかいしたツールぐんは、無料むりょう使つかえるJavaの標準ひょうじゅんてきなツールです。しかしながら、すべてを熟知じゅくちし、駆使くしして開発かいはつ・デバッグをおこなっているひと実際じっさいのところ少数しょうすうかもしれません。旧来きゅうらいのツールも便利べんりしん機能きのうえたり、ほかのツールと連携れんけい効率こうりつよく使つかえるように機能きのう強化きょうかされたものもあります。

 また、たとえばJava VMようのデバッガ「DTrace」のエージェント「dvm」を使つかえば、Java自身じしんふかいところまで詳細しょうさいうごきをることが可能かのうです。さまざまな情報じょうほうることができる一方いっぽう、プロファイラけいのツールは、オーバーヘッドをしょうじることがおおく、パフォーマンスチューニングのさいには、その状況じょうきょうをしっかりと把握はあくして利用りようしなければいけません。DTraceについては、下記かき記事きじ参考さんこうにしてください。

 便利べんりなツールのありがたみがかるのは、トラブルがこったときです。重要じゅうよう局面きょくめんにおいて、ちょっとしたツールをっているからないかで、トラブルからせるかくりつおおきくちがってくることでしょう。れた環境かんきょうなかで、れたツールを正確せいかく使つかいこなすのも重要じゅうようですが、日々ひびあたらしくなっていくツールにしたしむ時間じかんつくり、さらなる達人たつじんへのみちあゆんでいくことをおすすめします。

 次回じかいは2009ねん1がつはじめごろに公開こうかい予定よていです。内容ないよう未定みていですが、読者どくしゃみなさんの興味きょうみき、役立やくだ記事きじにする予定よていです。なにげてほしい内容ないようなどリクエストがありましたら、編集へんしゅう@ITの掲示板けいじばんまでおらせください。次回じかいもどうぞよろしく。

本稿ほんこう以外いがいのJDKツール紹介しょうかい記事きじ

プロフィール

安藤あんどうさいわいひさし(あんどう ゆきお)

安藤幸央

1970ねん北海道ほっかいどうまれ。現在げんざい株式会社かぶしきがいしゃエクサ マルチメディアソリューションセンター所属しょぞく。フォトリアリスティック3次元じげんコンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用りようした各種かくしゅ開発かいはつ業務ぎょうむたずさわる。コンピュータ自動じどう彩色さいしきシステムや3次元じげんイメージ検索けんさくシステムだい規模きぼデータ可視かしシステム、リアルタイムCG投影とうえいシステム、建築けんちく業界ぎょうかい、エンターテインメントけ3次元じげん CG ソフトの開発かいはつ、インターネットベースのコンピュータグラフィックスシステムなどを手掛てがける。また、Java、Web3D、OpenGL、3DCG の情報じょうほうげんとなるWebページをまとめている。

ホームページ
Java News.jp(Javaにかんする最新さいしんニュース)

所属しょぞく団体だんたい
OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)

おも著書ちょしょ
「VRML 60ふんガイド」(監訳かんやく、ソフトバンク)
これがJava だ! インターネットのあらたな主役しゅやく」(共著きょうちょ日本経済新聞社にほんけいざいしんぶんしゃ
The Java3D API仕様しよう」(監修かんしゅう、アスキー)


Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアIDについて

メールマガジン登録とうろく

@ITのメールマガジンは、 もちろん、すべて無料むりょうです。ぜひメールマガジンをご購読こうどくください。