için Java Enstrümanları açılamıyor Bir Java uygulamasını çalıştırmak için bir tomcat7 örneğini kullanıyorum. Uygulamamın maruz kalan Java enstrümantasyonuna ihtiyacı var. Bu bir javaagent ile yapılır ve ajanı başlangıçta setenv.bat komut dosyasındaki JVM'ye iletirim. Gerekli olan bölüme sahip bildirim dosyasında Tomcat jvm
set JAVA_OPTS=%JAVA_OPTS% -javaagent:"C:\path\to\agent.jar"
: statik bir yöntem ile bir statik değişken erişilebilir JVM sağladığı aletleri atamak madde sınıfının premain yönteminde
Premain-Class: package.name.agent.ExposeInstrumentation
public final class ExposeInstrumentation {
private static Instrumentation s_instrumentation;
public static void premain(String arguments, Instrumentation instrumentation) {
s_instrumentation = instrumentation;
}
public static Instrumentation getInstrumentation() {
return s_instrumentation;
}
}
Ama kodunda böyle yaptığımda:
Instrumentation instrumentation = ExposeInstrumentation.getInstrumentation();
getInstrumentation() null değerini döndürür;
Sorun nedir?
GÜNCELLEME bazı ileri hata ayıklama yaptım ve premain çalıştırılmaktadır ve s_instrumentation enstrümantasyon alır, ama benim kod s_instumentation ilerleyen bölümlerinde getInstrumentation çağırdığınızda null olarak ayarlanır. Bu, değerin geçerli düşünce olduğunu düşündüğüm tuhaf bir şey.
'Premain 'yönteminiz gerçekten aranıyor mu? – Berger
premain yürütülür ama – dragosb