无法加载独立版本的 Eclipse MAT(内存分析器工具)

Unable to load StandAlone version of Eclipse MAT (Memory Analyzer Tool)

我想分析我本地系统上的堆转储。所以我下载了 64 位版本的独立 MAT。

但是我无法启动 MAT。当我双击 exe 文件时,MAT UI 没有启动。

MAT 在 "configuration" 目录下生成了错误日志。根据日志,MAT 无法解析 "org.eclipse.birt.chart.device.extension" 的依赖关系。请在下面查看更多详细信息:

!SESSION 2016-02-11 03:40:49.831 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_18
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments:  -os win32 -ws win32 -arch x86

!ENTRY org.eclipse.birt.chart.device.extension 4 0 2016-02-11 03:41:01.810
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.birt.chart.device.extension [24]
  Unresolved requirement: Require-Bundle: org.eclipse.birt.chart.engine; bundle-version="[2.1.0,5.0.0)"
    -> Bundle-SymbolicName: org.eclipse.birt.chart.engine; bundle-version="4.5.0.v201506092134"; singleton:="true"
       org.eclipse.birt.chart.engine [26]
         Unresolved requirement: Require-Bundle: org.eclipse.birt.core; bundle-version="[2.1.0,5.0.0)"; visibility:="reexport"
           -> Bundle-SymbolicName: org.eclipse.birt.core; bundle-version="4.5.0.v201506092134"; singleton:="true"
              org.eclipse.birt.core [28]
                Unresolved requirement: Require-Bundle: org.eclipse.core.runtime; bundle-version="[3.2.0,4.0.0)"; visibility:="reexport"
                  -> Bundle-SymbolicName: org.eclipse.core.runtime; bundle-version="3.11.0.v20150405-1723"; singleton:="true"
                     org.eclipse.core.runtime [40]
                       Unresolved requirement: Require-Bundle: org.eclipse.core.jobs; bundle-version="[3.2.0,4.0.0)"; visibility:="reexport"
                         -> Bundle-SymbolicName: org.eclipse.core.jobs; bundle-version="3.7.0.v20150330-2103"; singleton:="true"
                            org.eclipse.core.jobs [37]
                              Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))"

    at org.eclipse.osgi.container.Module.start(Module.java:434)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.birt.chart.device.swt 4 0 2016-02-11 03:41:01.866
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.birt.chart.device.swt [25]
  Unresolved requirement: Require-Bundle: org.eclipse.birt.chart.engine; bundle-version="[2.1.0,5.0.0)"
    -> Bundle-SymbolicName: org.eclipse.birt.chart.engine; bundle-version="4.5.0.v201506092134"; singleton:="true"
       org.eclipse.birt.chart.engine [26]
         Unresolved requirement: Require-Bundle: org.eclipse.birt.core; bundle-version="[2.1.0,5.0.0)"; visibility:="reexport"
           -> Bundle-SymbolicName: org.eclipse.birt.core; bundle-version="4.5.0.v201506092134"; singleton:="true"
              org.eclipse.birt.core [28]
                Unresolved requirement: Require-Bundle: org.eclipse.core.runtime; bundle-version="[3.2.0,4.0.0)"; visibility:="reexport"
                  -> Bundle-SymbolicName: org.eclipse.core.runtime; bundle-version="3.11.0.v20150405-1723"; singleton:="true"
                     org.eclipse.core.runtime [40]
                       Unresolved requirement: Require-Bundle: org.eclipse.core.jobs; bundle-version="[3.2.0,4.0.0)"; visibility:="reexport"
                         -> Bundle-SymbolicName: org.eclipse.core.jobs; bundle-version="3.7.0.v20150330-2103"; singleton:="true"
                            org.eclipse.core.jobs [37]
                              Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))"

    at org.eclipse.osgi.container.Module.start(Module.java:434)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.birt.chart.engine 4 0 2016-02-11 03:41:01.867
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.birt.chart.engine [26]
  Unresolved requirement: Require-Bundle: org.eclipse.birt.core; bundle-version="[2.1.0,5.0.0)"; visibility:="reexport"
    -> Bundle-SymbolicName: org.eclipse.birt.core; bundle-version="4.5.0.v201506092134"; singleton:="true"
       org.eclipse.birt.core [28]
         Unresolved requirement: Require-Bundle: org.eclipse.core.runtime; bundle-version="[3.2.0,4.0.0)"; visibility:="reexport"
           -> Bundle-SymbolicName: org.eclipse.core.runtime; bundle-version="3.11.0.v20150405-1723"; singleton:="true"
              org.eclipse.core.runtime [40]
                Unresolved requirement: Require-Bundle: org.eclipse.core.jobs; bundle-version="[3.2.0,4.0.0)"; visibility:="reexport"
                  -> Bundle-SymbolicName: org.eclipse.core.jobs; bundle-version="3.7.0.v20150330-2103"; singleton:="true"
                     org.eclipse.core.jobs [37]
                       Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))"

    at org.eclipse.osgi.container.Module.start(Module.java:434)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.birt.chart.engine.extension 4 0 2016-02-11 03:41:01.867
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.birt.chart.engine.extension [27]
  Unresolved requirement: Require-Bundle: org.eclipse.birt.chart.engine; bundle-version="[2.1.0,5.0.0)"
    -> Bundle-SymbolicName: org.eclipse.birt.chart.engine; bundle-version="4.5.0.v201506092134"; singleton:="true"
       org.eclipse.birt.chart.engine [26]
         Unresolved requirement: Require-Bundle: org.eclipse.birt.core; bundle-version="[2.1.0,5.0.0)"; visibility:="reexport"
           -> Bundle-SymbolicName: org.eclipse.birt.core; bundle-version="4.5.0.v201506092134"; singleton:="true"
              org.eclipse.birt.core [28]
                Unresolved requirement: Require-Bundle: org.eclipse.core.runtime; bundle-version="[3.2.0,4.0.0)"; visibility:="reexport"
                  -> Bundle-SymbolicName: org.eclipse.core.runtime; bundle-version="3.11.0.v20150405-1723"; singleton:="true"
                     org.eclipse.core.runtime [40]
                       Unresolved requirement: Require-Bundle: org.eclipse.core.jobs; bundle-version="[3.2.0,4.0.0)"; visibility:="reexport"
                         -> Bundle-SymbolicName: org.eclipse.core.jobs; bundle-version="3.7.0.v20150330-2103"; singleton:="true"
                            org.eclipse.core.jobs [37]
                              Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))"

    at org.eclipse.osgi.container.Module.start(Module.java:434)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.birt.core 4 0 2016-02-11 03:41:01.868
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.birt.core [28]
  Unresolved requirement: Require-Bundle: org.eclipse.core.runtime; bundle-version="[3.2.0,4.0.0)"; visibility:="reexport"
    -> Bundle-SymbolicName: org.eclipse.core.runtime; bundle-version="3.11.0.v20150405-1723"; singleton:="true"
       org.eclipse.core.runtime [40]
         Unresolved requirement: Require-Bundle: org.eclipse.core.jobs; bundle-version="[3.2.0,4.0.0)"; visibility:="reexport"
           -> Bundle-SymbolicName: org.eclipse.core.jobs; bundle-version="3.7.0.v20150330-2103"; singleton:="true"
              org.eclipse.core.jobs [37]
                Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))"

    at org.eclipse.osgi.container.Module.start(Module.java:434)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

!ENTRY org.eclipse.core.contenttype 4 0 2016-02-11 03:41:01.869
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.core.contenttype [30]
  Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))"

    at org.eclipse.osgi.container.Module.start(Module.java:434)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1582)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1561)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1533)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1476)
    at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
    at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
    at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)

我在 64 位 OS 上使用 JDK 1.6.0_18 的 64 位版本。

任何人都可以提出一些解决方案来解决这个问题吗?

行:

Unresolved requirement: Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.7))"

表示您需要使用 Java 7(或 8)

您可以通过编辑安装目录中的 'MemoryAnalyzer.ini' 文件并添加以下行来指定用于 Eclipse MAT 的特定 JVM

-vm
path to Java 7 java

您必须在“-vmargs”行上方添加此内容。您必须将“-vm”放在与路径分开的一行上。

-vm 标志没有解决我的问题。

我需要更新路径上 java 的版本; readlink -e $(which java) 正在显示 jdk6。