我已经制作了一个hello world java程序来测试jmxremote的工作原理:
public class Main {
public static void main(String argv[]) {
try {
System.out.println("Press to continue...");
System.in.read();
} catch (Exception e) {
e.printStackTrace();
}
}
}
使用javac Main.java
编译它,并像
java -Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9010 \
-Dcom.sun.management.jmxremote.local.only=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
Main
然而端口永远不会被打开:
# telnet localhost 9010
Trying ::1...
telnet: connect to address ::1: Connection refused
(nc -l和netstat显示相同的结果)。 Java版本是
java version "1.5.0"
gij (GNU libgcj) version 4.4.7 20120313 (Red Hat 4.4.7-4)
和操作系统是Centos 6.5(使用yum从默认仓库安装java)。
我该如何解决这个问题?
我试过弄乱选项名称,但从来没有得到任何关于错误的信息 - jmx甚至可以在java 1.5中使用吗?
答案 0 :(得分:1)
就像人们所说的那样,libgcj并不是一个好主意。从GNU人员那里尝试分叉GPL许可的JVM是一个糟糕的尝试,它将Java代码编译为机器代码,而不是字节代码。它现在是一个永不支持JMX的死项目。
yum install java-1.7.0-openjdk-devel将提供您所需的功能。