微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java Attach API:UnsatisfiedLinkError

当使用Java Attach API ,我只在Linux上遇到以下链接错误(在不同的机器上试过):

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) ...

有趣的是,在Solaris和Windows上,它是开箱即用的。

我尝试了几个指定java.library.path组合指向包含libattach.so的目录,但没有运气。

这里有什么问题?

重载运行进程的符号(LD_PRELOAD附件)

dlopen:是否有可能捕捉未解决的符号,“手动”解决它们?

为什么在Linux中间接调用导入的函数

我怎样才能注入后台线程与LD_PRELOAD应用程序?

强制性dynamic链接

作为一个奖励问题 :

有没有办法看到哪个本地库实际绑定到一个java类

为什么在正确的文件夹“/ lib”和“/ usr / lib”中链接库(如pthread)?

C:正确的方式静态/dynamic链接MinGW-w64

-rdynamic只有select的符号?

不同的AttachProvider在不同的平台上使用。 在Linux上,它不应该使用sun.tools.attach.WindowsAttachProvider。 这是Windows。

[solaris] sun.tools.attach.solarisAttachProvider [windows] sun.tools.attach.WindowsAttachProvider [linux] sun.tools.attach.LinuxAttachProvider

这是在资源文件meta-inf services com.sun.tools.attach.spi.AttachProvider中配置的(通常这个文件存在于tools.jar中)。 它将搜索CLAsspATH获取这个资源文件的第一次出现,并从中读取AttachProvider实现类。

所以你可以通过在你的CLAsspATH中搜索sun.tools.attach.WindowsAttachProvider来解决这个问题。 可能你已经包含了一个来自Windows的tools.jar。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐