1
我正在嘗試在我的Java程序中使用sum.jvm工具。它可以讓我用sun.jvm編程*但是當我嘗試編譯它(乾淨,安裝),我得到這個:Maven編譯時找不到sun.jvm.hotspot
error: package sun.jvm.hotspot.memory does not exist
基本上一噸的這些錯誤的地方,我用一個sun.jvm參考。
我環顧了很多,我看不到有人發現這個問題到目前爲止......有誰知道這個問題的解決辦法嗎?
我想創建一個工具的子類,掃描某些字符串的JVM,我發現我需要使用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上。 我運行了命令「export CLASSPATH = $ CLASSPATH:$ JAVA_HOME/lib/sa-jdi.jar」但它仍然不起作用? – Erouax
@Erouax將'sa-jdi.jar'添加到IDE的項目屬性中的依賴項列表中。 – apangin