1.环境
win10 64位,oracle 11g r2,jdk8 64位
2.问题
第一次启动Oracle SQL Developer的时候会让我们填写java.exe的路径,jdk有两种:
- 我自己安装的jdk8 64位
- Oracle自带的jdk6 64位(C:oracleproduct11.2.0dbhome_1jdk)
这两个都不行,填写以后报如下错误:Unable to find a Java Virtual Machine
3.问题原因
Oracle 11g打包安装的sqldeveloper版本比较低,需要依赖jdk1.5 32位。
而Oracle11g打包安装的jdk是64位的。
4、解决方法
有两种解决方法:
1、不使用Oracle自带的sqldeveloper,那样就不用依赖32位的jdk了(推荐)
2、下载安装32位的jdk
如果采用第二种方式,还会遇到以下问题:sqldeveloper只在第一次打开的时候询问了java.exe位置,以后就没法改了。处理办法是修改"C:oracleproduct11.2.0dbhome_1sqldevelopersqldeveloperinsqldeveloper.conf",去掉SetJavaHome这句话。这样就可以重新选java.exe了。
如果sqldeveloper.conf这个文件不允许编辑,那就右键-文件属性-安全,设置为“完全控制”就可以了。
重新选java.exe时可能会陷入死循环,原因是sqldeveloper是32位的,必须以管理员方式运行才行。总之,oracle11g自带的32位的sqldeveloper很奇葩,oracle不知道为啥不把最新版的sqldeveloper打包进来。
5、最佳解决方法
下载最新版sqldeveloper(不带jre,使用自己的jdk),这样会避免很多弯路。