プロジェクト

全般

プロフィール

JMX

ネイティブバンドルでのJavaMX

問題

javapackagerでOSネイティブなバンドル・インストーラーを作成しインストールしたJavaを実行したところ、JConsole等のJMX接続ができませんでした。
アプリケーションのディレクトリ下を調べると、

$ ls runtime/conf
logging.properties*  net.properties*  security/  sound.properties*

となっており、一方JRE(JDK)のディレクトリ下を調べると
$ ls conf
logging.properties*  management/  net.properties*  security/  sound.properties*

となっています。
JDKのmanagementディレクトリの下には
$ ls conf/management/
jmxremote.access*             management.properties*
jmxremote.password.template*  snmp.acl.template

となっています。

どうやら、managementの設定がネイティブ・バンドルになかったのが原因のようです。

暫定処置で、JDKのmanagementディレクトリ下を、アプリケーションのruntime/conf下にコピーしたところ、JConsoleからの接続先にアプリケーションが登場しました。なお、接続を試みるとエラーとなったので、追加の設定が必要なようです。

conf/managementの設定調査

アプリケーションのapp/AnalogClock.cfg に以下を追記したらアプリケーションが起動しなくなりました。

[JVMOptions]
  :
-Dcom.sun.management.jmxremote

  • 予想
    jdk.management.agent モジュールがアプリケーションに含まれるJRE(抜粋)に含まれていない

クリップボードから画像を追加 (サイズの上限: 1 GB)