以下是我们的做法:

以下是我们的做法:

当我按照常规程序为 jvisualvm 创建启动器项时描述在这里,它的行为不符合预期。它不是直接启动应用程序,而是将应用程序作为不同的项目……发生了什么事???

重现步骤:

  1. 在 ~/jdk1.7.0 中下载并安装 Oracle JDK 1.7.0这里
  2. 按照常规步骤创建visualvm.desktop文件,并将可执行文件设置为~/jdk1.7.0/bin/jvisualvm
  3. 将 visualvm.desktop 文件拖到启动器上
  4. 通过新启动器启动应用

预期的:

  • VisualVM 作为常规应用程序启动

实际情况:

  • VisualVM 确实启动了,但它表现为一个新的不同的启动器中的项目,而不是我刚刚创建的项目
  • 这个新项目有一个漂亮的图标,所以我尝试通过选中“保留在启动器中”来保留它而不是旧图标,但是,当我单击这个新项目时,什么也没有发生???

所以我的问题是:如何在 jvisualvm 启动器中创建一个行为良好的项目?

答案1

这是许多 JAVA 应用程序的已知问题,BAMF 框架(负责将窗口与其桌面文件匹配)在这些情况下会失败。请参阅此错误报告:https://bugs.launchpad.net/bamf/+bug/757991

答案2

此问题已记录在以下位置: https://bugs.launchpad.net/ubuntu/+source/visualvm/+bug/657048?comments=all

/usr/bin/jvisualvm 启动脚本(大约第 13 行)正在寻找:/usr/lib/jvm/java-6-openjdk :sv@ubu:~$ grep -n /usr/lib/jvm /usr/bin/jvisualvm 13:for j in /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-sun; do

并且,假设 openjdk-6-jdk 包已经安装(sudo apt-get install openjdk-6-jdk),/usr/lib/jvm 中没有 /usr/lib/jvm/java-6-openjdk 的链接:sv@ubu:~$ ls /usr/lib/jvm java-1.6.0-openjdk-amd64 java-6-openjdk-amd64 java-6-openjdk-common

以下是我们的做法:

因此,为了匹配并使程序正常运行,只需创建一个符号链接:sv@ubu:~$ sudo ln -s /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-openjdk

注意:我使用的是 Ubuntu 12.04 64 位版本,因此您可能需要相应地调整符号链接。

答案3

使用以下答案这里。它是一个允许您向面板添加非原生应用程序的应用程序。

相关内容