背景:
Oracle公司的java10已经出了有一段时间了,正好闲着没事想大规模换软件也就直接把jdk8换成了jdk10了。然后把所有软件都卸载了,重新装最新版。
问题描述:
然后使用开始安装Eclipse、IDEA、MysqlDataBase、OracleDataBase,然后安装到Microsoft SQL Server2017和Myeclipse时出现了一点问题。
Microsoft SQL Server2017在检查安装环境的时候直接报错
它这意思就是我电脑上没有安装java10(或者说是它无法识别),让我去安装jre7(或者jdk7也是一样的),这就比较奇怪了。姑且把他算作2017的bug吧,然后安装Microsoft SQL Server2016结果也是一样的情况。这就有点让我纳闷了,Microsoft SQL Server2016是我之前就安装的版本,之前安装都没这种情况为什么现在会这样呢?
暂且放一边,然后安装Myeclipse-2017-CI-10。
Myeclipse本身安装没有什么问题,但就是在破解软件的时候出了大问题。
按正常情况下应该是运行破解文件的*.bat文件(*代表任意的文件名)之后,应该会自动去连接或者是调用cracker2017.jar这个破解程序,比如这样:
但是现在的情况是,只出现了cmd控制台的窗口,却没有弹出本来应该弹出的破解界面,然后再过一会又自动关闭了控制台。这个就扎心了有没有,记得好像Myeclipse的破解每个版本都是这样用呀,怎么会不行呢?
接着我又用管理员身份运行了一下这个*.bat文件,问题来了
由于英语不好,用有道翻译了一下,意思是"错误:无法访问jarfile cracker2017.jar",这个就比较扯了。然后无论是双击.bat文件还是.jar文件,都没办法运行。
然后想到之前安装Microsoft SQL Server2017的时候,提示我安装jre7。然后仔细想了想,会不会是java10的认证方式和之前版本不同,或者是java7里面有的东西,java10没有?而且之前用jdk8安装Microsoft SQL Server2016都没问题,现在java10安装Microsoft SQL Server2016都会报错。应该锅就是java10的。
解决问题:
然后去oracle下载安装了java8(之前提示的是更高版本也行),环境配好。再次尝试安装Microsoft SQL Server2017没有报错很顺利的安装了,再来破解Myeclipse破解界面也正常弹出了。实锤这个锅就是java10的。
思考原因:
所以问题就在于java8与java10的区别,既然之前提示没有java那也就是没有找到java,那环境变量的问题几率比较大。既然有可能是环境变量的问题,最有可能出问题的就是lib目录下的环境变量的配置(因为JAVA_HOME肯定是有的,但是lib目录下面不一定有需要配置那两个文件)。
打开java8的安装目录:
再打开java10的安装目录:
对比两个目录:java10还真的没有dt.jar和tools.jar文件。然而在配环境变量的时候(按照主流的比较完整的配法是:在系统变量配置:JAVA_HOME、在Path下配置:%JAVA_HOME%\bin、以及%JAVA_HOME%\lib\dt.jar和%JAVA_HOME%\lib\tools.jar),但是因为java10的lib里面没有dt.jar和tools.jar。所以java10中最后的两个配置是无效的,说不定还会引发其他的bug(猜测)。
但是又有同时需要java10和java8及其以前版本的怎么办呢?可以装两个java的版本配置三个环境变量JAVA_HOME来解决版本切换的问题,JAVA_HOME、JAVA8_HOME、JAVA10_HOME
例如:
Path:
准备用哪个版本就把JAVA_HOME的自改为相应的%JAVA10_HOME%(%%表示引用这个变量的内容),这样剩下的环境变量配置会自动根据JAVA_HOME的值,找到对应的版本。
从而实现版本切换(第一次配置完java10和java8后需要重启,以便生效。之后就可以直接改变环境变量的JAVA_HOME进行版本切换,不用重启)
查询当前java的版本号:同时按住Windows键和R键,输入cmd,然后输入Java -version 回车就可以显示你现在用的是哪个版本的java了
如果在环境变量里面切换了JAVA_HOME需要重新打开cmd进行查询版本号
PS:不得不说还是oracle对自己家的东西支持最好,你看人家OracleDatabase和MysqlDatabase就没你们这些幺蛾子