簡體   English   中英

如何將 jar 添加到 Windows 中的 jconsole 類路徑?

[英]How do I add a jar to jconsole classpath in windows?

我正在嘗試通過Jconsole調用JMX MBean ,但是我調用的方法接收一個需要在jconsole 類路徑上才能工作的對象。

我試過這個,但 jconsole 沒有打開(並且沒有顯示錯誤):

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

從 -J 類路徑中取出 jconsole.jar。 它已經在 jconsole 啟動器中設置。

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

嗯……我收回我的建議。 我有一個 Windows 批處理文件,我使用 [which works] 將 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,切換到 Threads 選項卡並注意線程中發生的事情。
  2. 或者,(因為它看起來像是在 Windows 中)按 Ctrl-Break並希望它會將線程轉儲打印到控制台,然后您可以觀察那里的線程。

如果你得到任何東西(或者如果你沒有......)

如果您想同時訪問本地和遠程進程,上述答案仍然缺少一步。

來自 Java 8 oracle 文檔:

如果 JMX 代理使用 Java 平台中未包含的連接器,則需要在運行 jconsole 命令時將連接器類添加到類路徑中,如下所示。

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

在上面的命令中, connector-path是包含連接器類的目錄或 Java 歸檔 (Jar) 文件,這些連接器類未包含在 JDK 中,將由 JConsole 使用。

那么,在您的情況下,命令將是:

$ 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 ,本地進程將不再可用。

Windows 中的解決方案是在類路徑上使用引號,例如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM