체크 아웃 다음 예제에서는 옵션의 값을 출력 할 HotSpotDiagnosticMBean
을뿐만 아니라 :
당신은 SO 대답 서로 참조 할 수 프로그래밍 방식으로이 작업을 수행하려면 VM_CREATION는 :
당신이 빠르고 쉽게 사람이 읽을 수있는 도구를 찾고 있다면
import java.lang.management.ManagementFactory;
import javax.management.ObjectName;
import javax.management.openmbean.CompositeData;
import javax.management.openmbean.CompositeDataSupport;
public class HotSpotTest {
public static void main(String [] args) throws Exception {
printHotSpotOption("MaxHeapFreeRatio");
printHotSpotOption("SurvivorRatio");
printHotSpotOptions();
}
private static void printHotSpotOption(String option) throws Exception {
ObjectName name = new ObjectName("com.sun.management:type=HotSpotDiagnostic");
String operationName = "getVMOption";
Object [] params = new Object [] {option};
String [] signature = new String[] {String.class.getName()};
Object result = ManagementFactory.getPlatformMBeanServer().invoke(name, operationName, params, signature);
CompositeDataSupport data = (CompositeDataSupport) result;
System.out.println(option);
System.out.println("- Value: "+data.get("value"));
System.out.println("- Origin: "+data.get("origin"));
}
private static void printHotSpotOptions() throws Exception {
ObjectName name = new ObjectName("com.sun.management:type=HotSpotDiagnostic");
String attributeName = "DiagnosticOptions";
Object result = ManagementFactory.getPlatformMBeanServer().getAttribute(name, attributeName);
CompositeData [] array = (CompositeData[]) result;
for (CompositeData d : array) {
System.out.println(d.get("name"));
System.out.println("- Value: "+d.get("value"));
System.out.println("- Origin: "+d.get("origin"));
}
}
}
+1 흥미 롭습니다. 전에는 그것을 보지 못했습니다. 나는 놀이를 할 것이고, 그것이 충분히 자세히 설명되어 있는지 살펴볼 것이다. – skaffman
이것은 내가 필요한 VMOptions를 알아야한다는 점을 제외하면 필자가 필요로하는 것에 매우 가깝습니다. 사용할 수있는 것이 무엇인지 말할 수없는 것은 정말 유감입니다. – skaffman
사용 가능한 진단 옵션을 인쇄하도록 예제를 수정했습니다. 그러나 사용 가능한 모든 VM 옵션이 인쇄되지는 않습니다. 모든 VM 옵션이 여기에 나열됩니다. 원하는 VM 목록을 만들고 쿼리 할 수 있습니다. http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp – Kevin