> On Nov 4, 2015, at 2:32 PM, Keimpe Bronkhorst <[email protected]> 
> wrote:
> 
> This concerns code we have in Oracle JDeveloper which collect thread dumps of 
> all Java Processes on local host. This code uses the non-public JDK classes:
>     import sun.jvmstat.monitor.MonitorException;
>     import sun.jvmstat.monitor.MonitoredHost;
>     import sun.jvmstat.monitor.MonitoredVm;
>     import sun.jvmstat.monitor.MonitoredVmUtil;
>     import sun.jvmstat.monitor.VmIdentifier;
> 
> to identify the Java processes on local host, and
> 
>     import com.sun.tools.attach.VirtualMachine;
>     import sun.tools.attach.HotSpotVirtualMachine;
> 
> to attach to the processes and dump their threads.
> 
> The trouble is that these classes are not accessible anymore in JDK9 unless 
> -XaddExports: is used.
> 
> Does anybody know how to do this functionality using public classes, or are 
> there plans to add public classes to replace these non-public classes?


com.sun.tools.attach is supported API that you should use to list the VM 
processes on a local host:
   http://download.java.net/jdk9/docs/jdk/api/attach/spec/index.html

I guess you are calling HotSpotVirtualMachine.remoteDataDump method to get 
thread dump.  Can you use java.lang.management.ThreadMXBean.dumpAllThreads once 
you start a local JMX agent in the attached VM?

Mandy

Reply via email to