2014-03-30 89 views
2

我试图通过调用的JMX MBean JConsole的,但我打电话的方法收到需要放在JConsole的类路径为了工作的对象。如何将jar添加到jconsole classpath中?

我已经试过这和JConsole的不开放(以及没有显示任何错误):

jconsole -J-Djava.class.path=%JAVA_HOME%\lib\jconsole.jar;path_to_newjar_\newjar.jar 
+0

尝试-J-cp -Jpath而不是-J-Djava.class。路径= ... – bmargulies

+0

感谢您的答复。仍然没有,jconsole无法打开。 – edubriguenti

+0

由于文档建议您的原始计划,我的评论是无益的,我不知道。 – bmargulies

回答

2

采取jconsole.jar出-J类路径。它已经设置在jconsole启动器中。

=====更新=====

嗯....我收回我的建议。我有一个Windows批处理文件,我使用[它工作],它将JAR添加到类路径中。意图是将JMXMP JMX客户端添加到jconsole中,然后启动到指定的JMX服务URL的参数。它看起来像这样:

@echo off 
start /B jconsole -J-Djava.class.path=%JAVA_HOME%\lib\jconsole.jar;MY-JAR-PATH\jmx-optional-1.0-b02-SNAPSHOT.jar service:jmx:jmxmp://localhost:%1 

如果像这样的命令不起作用(即JConsole中仍不会推出,但不报错了两种),那么你需要弄清楚它停滞不前。这2点建议:

  1. 启动另一个JConsole的,重视通过PID陷入僵局JConsole的,切换到线程选项卡和眼球发生了什么事情在主要线程。
  2. 或者,(因为它看起来就像你在窗口是)打使用CTRL-Break,希望它会打印出一个线程转储到控制台,然后你可以眼球主要线程去的插件那里。

后回来,如果你得到什么(或者,如果你不....)如果你想访问本地&远程进程

+0

感谢您的答复,但尚未。该命令仍然无效。 Jconsole没有打开,也没有显示错误。 – edubriguenti

+0

嗨尼古拉斯,更新你的答案,以获得最佳回应。它仅适用于以下情况:jconsole -J-Djava.class.path =“C:\ Program Files \ Java \ jdk1.7.0_5 1 \ lib \ jconsole.jar”service:jmx:jmxmp:// localhost:% 1 – edubriguenti

+0

尽管我的JAVA_HOME没问题,但它只适用于“。我认为这是因为单词 – edubriguenti

0

,上面的答案仍然缺少一个步骤。

从Java 8的Oracle文档:

如果JMX代理使用未包含在Java平台中的连接器,你需要将连接器类,当您运行JConsole的命令添加到类路径, 如下。

$ jconsole -J-Djava.class.path=JAVA_HOME/lib/jconsole.jar:JAVA_HOME/lib/tools.jar:connector-path

在上述命令,连接器路径是目录或包含未包括在JDK的连接器类,要由JConsole中使用的Java归档(JAR)文件。

在你的情况,然后,命令将是:

$ jconsole -J-Djava.class.path=%JAVA_HOME%\lib\jconsole.jar;%JAVA_HOME%/lib/tools.jar:path_to_newjar_\newjar.jar

当你离开关JAVA_HOME/lib/tools.jar,本地进程将不再可用。

相关问题