Ошибка при использовании Attach Api

При использовании приложения API в Eclipse в консоли выдается ошибка.

Чтобы использовать API присоединения, я пошел в установленную JRE в Eclipse, а затем с помощью опции редактирования включил tools.jar в опцию external jars в текущей JRE.

Но он выдает следующую ошибку, когда я пытаюсь выполнить простую программу, такую ​​как

java.lang.UnsatisfiedLinkError: нет присоединения в java.library.path com.sun.tools.attach.AttachNotSupportedException: на com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:190) не установлено ни одного поставщика (VirtualMachine.jMA:190) в dynamicLoading..main(VMAttach.java:17)

Это простая программа выполняется. импорт java.io.IOException;

import com.sun.tools.attach.AttachNotSupportedException;
import com.sun.tools.attach.VirtualMachine;

public class VMAttach {


    public static void main(String[] args) {


        try {
            VirtualMachine vm = VirtualMachine.attach("6832");
        } catch (AttachNotSupportedException e) {
            System.out.println("This error");
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Упомянутый 6832 идентификатор процесса имеет Java-приложение, работающее в системе

При смене установленного jre на jdk выдается следующая ошибка

Exception in thread "main" com.sun.tools.attach.AttachNotSupportedException: jvm.dll not loaded by target process
    at sun.tools.attach.WindowsVirtualMachine.<init>(WindowsVirtualMachine.java:46)
    at sun.tools.attach.WindowsAttachProvider.attachVirtualMachine(WindowsAttachProvider.java:52)
    at com.sun.tools.attach.VirtualMachine.attach(VirtualMachine.java:195)
    at dynamicLoadingTest.VMAttach.main(VMAttach.java:17)

3 ответа

Решение

На самом деле, эта проблема возникает, когда в вашей системе есть разные jdks, и все они включены в путь к классам.

Для меня решение было поставить attach.dll из JDK (той же версии, что и ваш JRE) в JRE bin каталог.

Я попробовал то же самое с JDK1.7, и он работает нормально. С JDK1.6 проблема остается.

Другие вопросы по тегам