我已经为我的目标板(基于 Gnueabi ARM)成功构建了一个 openjdk 11 JDK。 然后使用 JDK Jlink 我成功地创建了一个自定义 JRE,我可以在我的目标上运行它。
现在我想用 JStatd 或 JMX 进行远程调试,但是当我用
启动 java 时-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8855
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
我收到这个错误
-Dcom.sun.management is not supported in this VM.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
我已经使用命令创建了一个包含所有可能的 Java 11 模块的自定义 JRE
sudo qemu-arm -L /usr/arm-linux-gnueabi jdk/bin/jlink --no-header-files --no-man-pages --module-path jmods --compress=2 --add-modules java.base,java.compiler,java.datatransfer,java.desktop,java.instrument,java.logging,java.management,java.management.rmi,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.se,java.security.jgss,java.security.sasl,java.smartcardio,java.sql,java.sql.rowset,java.transaction.xa,java.xml,java.xml.crypto,jdk.accessibility,jdk.attach,jdk.charsets,jdk.compiler,jdk.crypto.cryptoki,jdk.crypto.ec,jdk.dynalink,jdk.editpad,jdk.hotspot.agent,jdk.httpserver,jdk.jartool,jdk.javadoc,jdk.jcmd,jdk.jconsole,jdk.jdeps,jdk.jdi,jdk.jdwp.agent,jdk.jfr,jdk.jlink,jdk.jshell,jdk.jsobject,jdk.jstatd,jdk.localedata,jdk.management,jdk.management.agent,jdk.management.jfr,jdk.naming.dns,jdk.naming.rmi,jdk.net,jdk.pack,jdk.rmic,jdk.scripting.nashorn,jdk.sctp,jdk.security.auth,jdk.security.jgss,jdk.xml.dom,jdk.zipfs --output jre_all_modules
但我得到了相同的“-Dcom.sun.management 在此 VM 中不受支持。”错误。
由于目标是嵌入式板,RAM 数量有限,目标是获得运行 openjdk 11 JMX 或 JStatd 所需的最小模块集。
提前感谢大家
更新:我将 jdk 构建为“最小”。在进行配置之前,作为“客户端”我解决了这个问题。
我将 jdk 构建为“最小”。配置它,在制作它之前,作为“客户端”我解决了问题