[转]heritrix3.1与java1.8不兼容
2017-09-25 本文已影响0人
Hookah
最近刚安装了java1.8,在使用heritrix时(heritrix-3.1.0),发现通过cmd输入heritrix -a admin:admin无法启动服务端,提示错误为默认商品8443可能被占用,不过检查系统端口占用情况,发现这个商品并没有被占用。
然而,在Heritrix窗口查看异常为ClassNotFound,sun.security.tools.KeyTool类无法找到,原来问题出在这里。
好端端的类怎么就不见了呢,比较java1.7和java1.8的sun.security.tools包(在rt.jar中)之后发现,原来在java1.8里面已经没有KeyTool类,而是多了一个名为sun.security.tools.keytool的包,相必原来KeyTool的功能被优化后拆为几个新类来实现了。
好在机器上原来的java1.7还在,只要修改一下JRE的配置即可。
此处还需要注意,在安装jdk时如果也同时安装了新的jre,那么,会在C盘C:\ProgramData\Oracle\Java\javapath路径下面创建新的jre的快捷方式,包括(java.exe,javaw.exe,javaws.exe),并且在Path环境变量的最前面会加入这个路径。
另外,还需要修改注册表 HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\CurrentVersion的键值。
最后,启动heritrix时,应注意使用https访问,否则会抛出异常javax.net.ssl.SSLException。