2017-03-07 7 views
1

Javaプログラムでsum.jvmツールを使用しようとしています。 。それは私がこれを取得する*私はsun.jvmを使用してプログラムすることができますが、それを私はそれをコンパイルしようとすると、(クリーンインストール):コンパイル時にMavenがsun.jvm.hotspotを見つけられない

基本的に
error: package sun.jvm.hotspot.memory does not exist 

私はsun.jvmリファレンスを使用どこため、これらのエラーのトン。

私は多くを見回しましたが、私はこの問題を持つ他の誰かを見つけることができません...誰かがこれに修正を知っていますか?

JVMで特定の文字列をスキャンするToolsサブクラスを作成しようとしていますが、sun.jvmを使用する必要があることがわかりましたが、今は動作しません。

@Override 
public void run() { 
    SystemDictionary dict = VM.getVM().getSystemDictionary(); 
    InstanceKlass stringKlass = (InstanceKlass) dict.find("java/lang/String", null, null); 
    OopField valueField = (OopField) stringKlass.findField("value", "[C"); 

    long[] stats = new long[2]; 
    VM.getVM().getStringTable().stringsDo(s -> { 
     s.printValueOn(System.out); 
     System.out.println(); 
     stats[0]++; 
     stats[1] += s.getObjectSize() + valueField.getValue(s).getObjectSize(); 
    }); 
} 

私はツールサブクラスでテストするために使用しています:

これが私の方法です。私のプロジェクトでは、sun.jvmを参照しているので、Mavenでクリーンインストールをしようとするとエラーが発生します。 IntelliJのコンパイラでビルドされていますが、Mavenではビルドされていません。

また、Mavenを再インポートしようとしました。さらに、IntelliJを再インストールし、新しくインストールしてコンパイルしました。

すべてのsun.jvm.hotspot。*パスで発生します。

おかげで、 Erouax

答えて

2

CLASSPATHに$JAVA_HOME/lib/sa-jdi.jarを追加します。

+1

これをCLASSPATHに追加するにはどうすればよいですか?私はOS Xにあります 「CLASSPATH = $ CLASSPATHをエクスポート:$ JAVA_HOME/lib/sa-jdi.jar」というコマンドを実行しましたが、それでも動作しません。 – Erouax

+1

@Erouax IDEのプロジェクトプロパティの依存関係リストに 'sa-jdi.jar'を追加します。 – apangin

関連する問題