Przy użyciu Java Attach API
, otrzymuję następujący błąd link na Linux (próbowałem na różnych komputerach) tylko:Java Attach API: UnsatisfiedLinkError
Exception in thread "main" java.lang.UnsatisfiedLinkError: sun.tools.attach.WindowsAttachProvider.tempPath()Ljava/lang/String;
at sun.tools.attach.WindowsAttachProvider.tempPath(Native Method)
at sun.tools.attach.WindowsAttachProvider.isTempPathSecure(WindowsAttachProvider.java:74)
at sun.tools.attach.WindowsAttachProvider.listVirtualMachines(WindowsAttachProvider.java:58)
at com.sun.tools.attach.VirtualMachine.list(VirtualMachine.java:134)
at sun.tools.jconsole.LocalVirtualMachine.getAttachableVMs(LocalVirtualMachine.java:151)
at sun.tools.jconsole.LocalVirtualMachine.getAllVirtualMachines(LocalVirtualMachine.java:110)
...
Co ciekawe, na Solaris i Windows to działa po wyjęciu z pudełka.
Wypróbowałem kilka kombinacji określania java.library.path
, aby wskazać katalog zawierający libattach.so
, ale bez powodzenia.
Co jest nie tak?
I jako pytanie dodatkowe:
Czy istnieje sposób sprawdzenia, która biblioteka natywna jest faktycznie związana z klasą Java?
Czy możesz znaleźć tę bibliotekę w LD_LIBRARY_PATH? – longhua
Próbowałem również dodać do LD_LIBRARY_PATH - ale to nie pomogło. W systemie Solaris nie ma go również w LD_LIBRARY_PATH, ale działa tutaj. – MRalwasser
Wygląda na to, że biblioteka jest niezgodna z używaną klasą Java. Czy pochodzą z tego samego JDK? Czy istnieje inna biblioteka o tej samej nazwie w LD_LIBRARY_PATH lub java.library.path? – longhua