FaqProfilerWorkingDirectoryJa
プロファイラを実行中のアプリケーションに接続する場合、なぜプロファイラに、そのアプリケーションの「作業ディレクトリ」を指定しないといけないのでしょうか ? 作業ディレクトリがどこか、どうやって見つければいいですか ? (アプリケーションが実際には「アプリケーションサーバー」で、複雑なスクリプトによって起動されている場合など)
作業ディレクトリが必要な理由は、ターゲットの JVM とソケット接続を確立するために、プロファイラがターゲット JVM に特定の情報を渡さなければならないためです。この情報は現在、ファイルを介して渡されています。このファイルは、事前に決められた名前を使ってツールが生成し、JVM の作業ディレクトリ (便利で安全と思われる場所) に置きます。
プロファイルするアプリケーションの作業ディレクトリがわからない場合は、アプリケーションのドキュメントや実験を確認してください。たとえば、System.getProperty("user.dir") を呼び出して、その結果を出力するだけというシンプルなサーブレットを記述するなど。アプリケーションサーバーの場合、通常、作業ディレクトリは一定なので、この確認は一度だけですむはずです。
~
