我尝试连接到正在运行的JVM,使用java中的虚拟机类对其进行调试。我现在有java 8,jdk1.8.0_11。我试图给它添加一个清单,但无济于事。我还从JDK \ libs文件夹中导入tools.jar文件。
我的代码:
import java.io.IOException;
import java.util.List;
import com.sun.tools.attach.AgentInitializationException;
import com.sun.tools.attach.AgentLoadException;
import com.sun.tools.attach.AttachNotSupportedException;
import com.sun.tools.attach.VirtualMachine;
import com.sun.tools.attach.VirtualMachineDescriptor;
public class loadVM {
public static void main(String[] args) {
String name = "replaceAfterNameFound";
List <VirtualMachineDescriptor> vms = VirtualMachine.list();
for (VirtualMachineDescriptor vmd: vms) {
System.out.println(vmd.displayName());
if (vmd.displayName().equals(name)) {
try {
VirtualMachine vm = VirtualMachine.attach(vmd.id());
String agent = "";
vm.loadAgent(agent);
} catch(AttachNotSupportedException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
} catch(AgentLoadException e) {
e.printStackTrace();
} catch(AgentInitializationException e) {
e.printStackTrace();
}
}
}
}
}
以下是运行时遇到的错误的副本:
java.util.ServiceConfigurationError:com.sun.tools.attach.spi.AttachProvider: 提供者sun.tools.attach.WindowsAttachProvider不可能 实例
谢谢你们的帮助!