【问题标题】:How can I see which native dll's are loaded by the JVM?如何查看 JVM 加载了哪些本机 dll?
【发布时间】:2012-12-12 19:25:21
【问题描述】:

我在IntelliJ中调试一个应用,JVM报错libpng的版本:

QSystemTrayIcon::setVisible: No Icon set
libpng warning: Application was compiled with png.h from libpng-1.4.0
libpng warning: Application  is  running with png.c from libpng-1.2.46
libpng error: Incompatible libpng version in application and library

我想检查在我的 java 程序执行期间正在加载哪个 libpng 文件(即文件的完整路径)。我怎样才能做到这一点?

下一个问题是:如何确保它加载 libpng 版本 1.4.0(它在我的系统上,但显然它首先找到 libpng 1.2.46)。

【问题讨论】:

    标签: java dll jvm libpng


    【解决方案1】:

    在 Unix 上,您可以查看所有映射。如果加载了共享库,您可以在/proc/{pid}/maps 下看到它,例如

    address           perms offset  dev   inode   pathname
    08048000-08056000 r-xp 00000000 03:0c 64593   /usr/sbin/gpm
    08056000-08058000 rw-p 0000d000 03:0c 64593   /usr/sbin/gpm
    08058000-0805b000 rwxp 00000000 00:00 0
    40000000-40013000 r-xp 00000000 03:0c 4165    /lib/ld-2.2.4.so
    40013000-40015000 rw-p 00012000 03:0c 4165    /lib/ld-2.2.4.so
    4001f000-40135000 r-xp 00000000 03:0c 45494   /lib/libc-2.2.4.so
    40135000-4013e000 rw-p 00115000 03:0c 45494   /lib/libc-2.2.4.so
    4013e000-40142000 rw-p 00000000 00:00 0
    bffff000-c0000000 rwxp 00000000 00:00 0
    

    http://linux.die.net/man/5/proc

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      • 2013-09-03
      • 2013-08-08
      • 2018-02-12
      • 1970-01-01
      相关资源
      最近更新 更多