2

JVisualVM をビルドしようとするときは、http: //visualvm.java.net/build/build.htmlに示されている手順に従っています。

トランクをハード ドライブにチェックアウトし、http://java.net/projects/visualvm/downloads/download/dev/nb73_visualvm_14012013.zipをダウンロードし、その内容をvisualvm/ディレクトリに抽出しました。

visualvm コア ツールをビルドするには、ここで入手できる NetBeans 7.3 プラットフォームとプロファイラーのバイナリが必要です。これらのバイナリは、trunk/visualvm ディレクトリに抽出する必要があります。ant run または ant build-zip を使用して、VisualVM をビルドまたは実行できます。

実行するant runと、次のようになりました。

compile:
    [mkdir] Created dir: C:\Users\user\Desktop\jvisualvm\visualvm\applicationviews\build\classes
 [nb-javac] Compiling 19 source files to C:\Users\user\Desktop\jvisualvm\visualvm\applicationviews\build\classes
 [nb-javac] warning: [options] bootstrap class path not set in conjunction with -source 1.5
 [nb-javac] C:\Users\user\Desktop\jvisualvm\visualvm\applicationviews\src\com\sun\tools\visualvm\application\views\threads\ThreadMXBeanDataManager.java:117: e
rror: cannot find symbol
 [nb-javac]             super(dummyLong, CommonConstants.SERVER_RUNNING, CommonConstants.SERVER_PROGRESS_INDETERMINATE);
 [nb-javac]                                             ^
 [nb-javac]   symbol:   variable SERVER_RUNNING
 [nb-javac]   location: interface CommonConstants
 [nb-javac] C:\Users\user\Desktop\jvisualvm\visualvm\applicationviews\src\com\sun\tools\visualvm\application\views\threads\ThreadMXBeanDataManager.java:117: e
rror: cannot find symbol
 [nb-javac]             super(dummyLong, CommonConstants.SERVER_RUNNING, CommonConstants.SERVER_PROGRESS_INDETERMINATE);
 [nb-javac]                                                                             ^
 [nb-javac]   symbol:   variable SERVER_PROGRESS_INDETERMINATE
 [nb-javac]   location: interface CommonConstants
 [nb-javac] Note: Some input files use unchecked or unsafe operations.
 [nb-javac] Note: Recompile with -Xlint:unchecked for details.
 [nb-javac] 2 errors
 [nb-javac] 1 warning

Netbeans 7.3 もインストールしましたが、少しは役に立ちました。

私はこれらの問題にまったく慣れていません。何か不足していますか?

4

2 に答える 2

2

あなたは「これらの問題についてはまったく新しい」とおっしゃいましたが、具体的にトランクを構築したい理由があるかどうかお尋ねしてもよろしいですか? ほとんどの場合、ソース管理に SVN を使用する場合のワークフローには、 /tagsの下のリリースのタグ付けが含まれます。タグ付けされたリリースは一般的にテストされており、リリースに適していると見なされるための最低限のテスト基準を満たしているため、おそらくタグの 1 つを簡単に作成できます。

自分で /trunk をビルドしても問題はありませんが、「不安定/進行中」のビルドと見なす必要があるため、問題が発生することが予想されます。

ご存知かもしれませんが、コンパイル済みのバイナリがVisualVM サイトからダウンロードできます。sudo apt-get install visualvmお使いのオペレーティング システムのバイナリが一覧にない場合は、おそらくパッケージ マネージャー ( Ubuntu など)で見つけることができます。


そうは言っても、あなたがしたいのなら、私があなたに挑戦することを思いとどまらせないでください:

SERVER_RUNNINGこの場合、コンパイラは、シンボルとクラスSERVER_PROGRESS_INDETERMINATEが見つからないことを通知しています。CommonConstantsこれらは、ThreadMXBeanDataManagerクラスの 117 行目で参照されます。そのクラスを見るとimport org.netbeans.lib.profiler.global.CommonConstants、CommonConstants が NetBeans に由来することを示すステートメントが表示されます。ThreadMXBeanDataManager クラスの SVN コミット履歴を調べると、開発者が VisualVM を NetBeans 7.3 と互換性を持たせるために変更を加えたことがわかります。したがって、いくつかの可能性があります。

  1. 開発者は間違っていて、実際には他のバージョンの NetBeans (おそらくプレリリース版など) でコンパイルしていました。このような場合は、バグ レポート (および可能であればパッチ) を提出する必要があります。
  2. 間違ったバージョンの NetBeans に対してコンパイルしようとしています。
  3. クラスパス/ビルド スクリプトに問題があります。

#2と#3を調べてみましょう。リンク先のバイナリを取得し、CommonConstants クラスが存在する jar を、JFindまたは同様のユーティリティを使用して (またはグーグルなどで) 見つけることができます。瓶の場所

クラスが 2 つの場所に存在することがわかります。次に行うことは、両方のクラス ファイルをチェックして、それらに定数があることを確認することです。unzip ユーティリティ (例: 7-zip ) を使用して jar ファイルを展開し、逆コンパイラ (私はJD-GUIが好きです) を使用して、クラスに定数があることを確認します。 逆コンパイラ

リンク先のバージョンは私のマシンでは問題ないようです。残念ながら、さらに調査する必要があります。コンパイルを行う Ant スクリプトのクラスパスに、これらの jar のいずれかまたは両方がありますか? 環境変数を介してクラスパスに別のバージョンの jar がありますか? ここには多くの可能性があるため、いくつかの調査を行う必要があります。これらすべてが大変な作業のように思われる場合は、事前にコンパイルされたバイナリのいずれかを使用するか、タグ ビルドに切り替えることをお勧めします。

于 2013-03-06T19:30:27.003 に答える
0

NetBeans7.2に対してコンパイルしているようです。コンパイルする前に、NetBeansでVisualVMプロジェクトを開きましたか?その場合は、NetBeansの最上位のVisualVMプロジェクトに設定されているNetBeansプラットフォームを確認してください。nb73_visualvm_14012013.zipからNetBeansプラットフォームに対してVisualVMをコンパイルする必要があります。インストールが正しいことを確認するには、次のことを試してください。

  1. NetBeansでVisualVMを開いている場合は、NetBeansを閉じます
  2. VisualVMソースツリーですべてのtrunk/visualvm / * / nbproject / privateディレクトリを検索し、プライベートディレクトリを削除します。
  3. ant runコマンドラインから使用

それが機能する場合は、NetBeansを開き、trunk / visualvm /netbeansをNetBeansプラットフォームとして登録し、VisualVMトップレベルプロジェクトのプラットフォームとして設定します。

于 2013-03-07T09:52:22.803 に答える