我想知道是否可以通过 web start 启动 JConsole。
例如,我有一个 Web 应用程序,当用户单击一个按钮(具有 JMX 端点的 IP:PORT)时,我想启动 JConsole,以便用户能够监视特定的 JMX 端点。
在我的服务器中,我安装了 Java,所以我认为这是可能的。
有没有人尝试过这样做。考虑到我想启动一个不是我开发的应用程序,我会有什么问题吗?
提前致谢。
编辑我 .jnlp 文件如下
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
<information>
<title>JConsole Web Start</title>
<vendor>User</vendor>
</information>
<security>
<all-permissions />
</security>
<resources>
<j2se version="1.6+" initial-heap-size="150m" max-heap-size="512m" />
<jar href="http://127.0.0.1/jconsole.jar" main="true" />
</resources>
<application-desc name="sun.tools.jconsole.JConsoleWebStart"
main-class="sun.tools.jconsole.JConsole" width="300" height="300">
<argument><![CDATA[hostname:port]]></argument>
</application-desc>
</jnlp>
我发现这可以工作。但是,它不适用于 Java 7,会为"Bad package name of main class"抛出异常。我尝试了 Java 6 并且工作正常,无法真正理解原因。
编辑二: 最后我发现上面的.jnlp不能以Java 7开头的原因是主类的sun.tools.jconsole包名。Java7 似乎不喜欢以 sun 开头的包名。因此,我创建了自己的 jar,它实际上将 jconsole 包装在里面并且它可以工作。