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
これをCLASSPATHに追加するにはどうすればよいですか?私はOS Xにあります 「CLASSPATH = $ CLASSPATHをエクスポート:$ JAVA_HOME/lib/sa-jdi.jar」というコマンドを実行しましたが、それでも動作しません。 – Erouax
@Erouax IDEのプロジェクトプロパティの依存関係リストに 'sa-jdi.jar'を追加します。 – apangin