有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JMAP命令,调试对象的错误为64位



我需要在IST环境中运行的web逻辑服务器的堆转储。我没有访问权限,所以我已经要求支持团队这样做。在UNIX上执行的命令如下所示:

/jmap-heap:format=B19153

当支持团队执行该命令时,他们得到以下输出:

正在附加到进程ID 19153,请稍候
附加到进程时出错:附加失败:调试对象为64位,请使用java-d64作为调试器

我认为服务器是64位的,但这个建议是什么意思呢?这是否意味着应该使用命令中的该标志启动服务器

我试图在互联网上寻找这样的问题,但没有得到任何有用的结果。有人知道如何解决问题吗

我感谢你们所有人给予我的帮助

问候,
克坦


共 (2) 个答案

  1. # 1 楼答案

    谢谢拉格诺

    我只需要在命令中添加-d64

    ./jmap -d64 -heap:format=b 19153
    

    由于JVM是64位的,所以必须这样做

  2. # 2 楼答案

    确保您使用的jmap命令与用于运行进程19153的路径(目录)相同。对我来说,主机上安装了多个JDK,一个用于运行进程19153,另一个用于调用jmap

    您可以使用以下命令检查java版本:java -version

    是否使用-d64JVM参数来启动进程19153