JProfiler UnsatisfiedLinkError 启动时

Posted

技术标签:

【中文标题】JProfiler UnsatisfiedLinkError 启动时【英文标题】:JProfiler UnsatisfiedLinkError when starting 【发布时间】:2011-11-17 08:16:13 【问题描述】:

我刚刚从jprofiler_linux_7_0_1.sh 下载并安装了 JProfiler 试用版。奇怪的是在安装过程中没有提示输入许可证信息。但一切似乎都很好,直到我尝试运行分析器:

# sh ./bin/jprofiler -c

-c是在控制台运行jprofiler。我在网上某处看过,但不确定是不是真的。反正结果还是一样。)

这是我得到的结果:

Exception in thread "main" java.lang.UnsatisfiedLinkError: /opt/jdk1.6.0_26/jre/lib/amd64/xawt/libmawt.so: libXext.so.6: cannot open shared object file: No such file or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703)
        at java.lang.Runtime.load0(Runtime.java:770)
        at java.lang.System.load(System.java:1003)
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1724)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1028)
        at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)
        at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29)
        at java.awt.Component.<clinit>(Component.java:566)
        at com.install4j.runtime.splashscreen.JavaSplashController.show(Unknown Source)
        at com.install4j.runtime.launcher.SplashEngine.showSplashScreen(Unknown Source)
        at com.install4j.runtime.launcher.Launcher.main(Unknown Source)

我来/opt/jdk1.6.0_26/jre/lib/amd64/xawt;它 libmawt.so,但没有libXext.so.6。我试图卸载 jprofiler 并重新安装它,但出现同样的错误。

有人知道这里发生了什么吗?

【问题讨论】:

【参考方案1】:

您不能在控制台模式下运行 JProfiler GUI。参数 -c 仅用于在控制台模式下运行安装程序。

要在无头机器上设置分析,请运行

bin/jpintegrate

控制未附加 JProfiler GUI 的已分析进程(“离线分析”)运行

bin/jpcontroller

【讨论】:

感谢您的指导,我已设置 jpintegrate 并从中获取 config.xml。我尝试将本地计算机连接到服务器,但不成功 你知道确定代理已经在运行吗? @HoàngLong 在 stderr 上,您将看到以“JProfiler>”为前缀的行,它们表示代理已激活。在您的本地机器上,使用“附加到 JVM(本地或远程)”类型的会话并选择与 jpintegrate 中指定的相同端口。还要确保远程和本地端的防火墙在该端口上打开。 感谢您的正确指导。这正是我后来遇到的问题。 @HoàngLong 要了解有关 JProfiler 的更多信息,您可以查看screen casts。文档是捆绑的,但它也是available online。探索功能的另一个好方法是查看what's new pages of recent releases。【参考方案2】:

检查您的操作系统中是否安装了 libxtst。要安装它,您可以执行以下操作:“sudo apt-get install libxtst6:

PS:您也可以尝试使用带有评估许可证的YourKit Java Profiler。

【讨论】:

@Validislav:谢谢,我刚刚意识到错误。我从没想过从完整的应用程序安装后会发生这种错误。 @VladislavBauer 您对 JProfiler 的负面评论是不必要的,与手头的问题无关 @Ingo Kegel:实际上,这是真实的添加。上面的答案。 @VladislavBauer “真实”的主观陈述? :-) @Ingo Kegel:是的,我所有的同事都这么说。 YourKit 比 JProfiler (yourkit.com/features/index.jsp) 具有更多的功能和优势。 :)

以上是关于JProfiler UnsatisfiedLinkError 启动时的主要内容,如果未能解决你的问题,请参考以下文章

性能测试之JProfiler9.2

JProfiler 挂起并显示“等待 JProfiler GUI 连接”消息

jprofiler怎么分析内存溢出

使用 jProfiler 生成调用图

JProfiler性能分析

JProfiler UnsatisfiedLinkError 启动时