这是我第一次使用jconsole。
使用此目的的最终目标是使用内存redis使用进行测量。但是,因为这是我第一次想要开始只打印一个短语的小型java项目。
这是我的源代码。
public class Main {
public static void main(String[] args) throws Exception {
int cnt = 0;
while(true){
if(cnt == 100)
break;
System.out.println("Save me from the nap!");
Thread.sleep(1000*30);
cnt++;
}
}
};
在我编写此代码后,我尝试运行jconsole。所以我在eclipse中运行了这个程序,同时,我在终端执行'jconsole'命令。如下。
>jconsole
启用了UI界面,我可以看到我的程序的进程ID:
所以我选择'本地'和我的进程ID,然后按连接按钮。
但它显示了这样的错误消息。
ConnectionFailedSSL1
ConnectionFailedSSL2
<Cancel> <Insecure>
我是否需要额外的工作才能执行jconsole?给我一些具体的使用说明。我真的没有'SSL'的概念。(我所知道的就是SSL是Secure Socket Layer的缩写)
我的操作系统是OSX Mavericks。
答案 0 :(得分:1)
显然,jconsole无法对与JVM建立直接SSL连接时收到的证书进行身份验证。由于它位于本地计算机上,因此选择“不安全”并在没有证书身份验证的情况下进行连接应该是安全的。
答案 1 :(得分:1)
您还应该确保JVM和jconsole是相同的版本 - 特别是64比32位。
答案 2 :(得分:1)
我们已经看到上述行为抱怨“ConnectionFailedSSL1”,即使对于使用1.7.0_45-b18关闭auth / ssl(所有默认值)的本地连接,它也会以1.7.0_75-b13消失,回到如何它曾经是java 1.6。