2011-09-09 9 views
0

VMWare Fusion 3.x(OSX)で動作するWindows 7 x64でJava開発をしています。私はJDK6(アップデート26)をインストールし、パスにJAVA_HOMEを設定して(スラッシュを付けずに)、コマンドプロンプトを再起動しました。VMWareの下でWindowsでvisualvmを実行するのに助けが必要

私はプログラムを正常に起動できます。起動時には、キャリブレーションを実行してから、このエラーで失敗します。

「ディレクトリを作成できませんでした\ VMWareのホスト\共有フォルダ\の.nbprofiler」(つまりスラッシュの後にスペースがないが、マークアップは期間を隠した)

私はクリックして続けることができますが、私がプログラムに参加しているときは、CPUまたはメモリのプロファイリングを行うことができません。私は、同様のエラーボックスをスロー:

「エラーは、ターゲットJVMのために保存校正データを取得:(以前と同じ)...作成できませんでした。」私は渡すことで、この作業を持っていたワンス・アポン・ア・タイム

を - 起動時に-userdirフラグと-J-Dnbprofiler.homeが表示されますが、そのトリックはもう機能しません。

(完全なコマンドは以下のとおりであった: jvisualvm --userdir C:\ Users \ユーザーMYNAME -J-Dnbprofiler.home = C:\ Users \ユーザーMYNAME )私はその校正データを保存するためにjvisualvmを強制するにはどうすればよい

VMWareのネットワークドライブの代わりに「本当の」ドライブに入れて、これを稼働させますか?

答えて

3

.nbprofilerディレクトリは、user.homeシステムプロパティから派生したものです。私はあなたがWindowsのインストールに何をしたかは分かりませんが、user.homeはdirectory\VMWare-host\Shared Foldersを指しています。したがって、Windowsインストールを修正して、Javaがユーザのホームディレクトリとしてc:\Users\mynameを認識できるようにすることです。それが何らかの理由で失敗した場合は、正しく書いたようにnbprofiler.homeプロパティを使用してそれを上書きすることができます。しかし、あなたは、次のコマンドラインでVisualVMのを起動する必要がありますので、あなたは、存在しないディレクトリを指すようにする必要がありますプロファイラの一部が動作していない場合でも、あなたが "でサンプリングを使用することができるはず、

jvisualvm -J-Dnbprofiler.home=c:\Users\myname\nbprofiler --userdir c:\Users\myname\visualvm_userdir 

一つの最後のノート「サンプラー」タブをクリックします。

+0

優秀、それは働いた!ところで、私はWindowsをインストールするときに何も特別なことをしなかったので、user.homeが正しい場所をどのように、あるいはなぜ指していないのかわかりません。私は** ** VMWareがやっていることは何となく後をついていると思う。 – cremes

+1

JavaはWindowsレジストリとshell32.dll APIを使用してユーザーのホームディレクトリを取得します。私は実際にデスクトップフォルダを探し、ホームディレクトリとして親ディレクトリを使用します。あなたの「デスクトップ」フォルダはどこですか? –

+0

これは問題です。 Javaは、Windowsのフォルダリダイレクト機能を考慮していません。 VMWareを使用すると、重要なユーザーフォルダをフォルダリダイレクト機能で同期させることができます。つまり、すべてがこれらのキーフォルダのホストシステムにマップされます。デスクトップはサブフォルダとして上記のフォルダにマップされているため、親は間違っています。 Tomasのおかげで、これは私が現在行っている別の問題を解決しています。フォルダリダイレクトを有効にすると、同様に混乱しているいくつかのJavaアプリケーションがあります。 –

0

VMの共有を無効にしてみます。

Fusion with Sharingを無効にしているWindows 7 x86の場合、私のために働きます(共有は書き込みできないフォルダを提供するメカニズムです)。

+0

実現できません。 VMイメージにはディスクスペースがほとんどないため、実行中のコード、プログラムのデータなどにアクセスするには共有ドライブが必要です。 – cremes

+0

次に、VisualVMのソースコードを見て、共有ドライブが使用可能であると思う理由を調べることをお勧めします。 –

0

私は以下のコマンドがわかりました。

visualvm -J-Duser.home=%HOME%

また、私は私のアプリの起動コマンドに-Duser.home =%HOME%のを追加する必要がありました。

私が定義されnbprofile.homeとユーザーディレクトリを持っていましたが、プロファイラは、私のアプリに対して実行していたとき、私はまだエラーを取得したProfiler Agentのエラー:共有Folders.nbprofiler \ディレクトリの\ VMwareのホストを作成できませんでした。

私は、Profilerが、visualvmのものではなく私のアプリケーションで定義されたuser.homeを使用していることを発見しました。どちらも必要と思われる。

関連する問題