Oracle11g x64使用Oracle SQL Developer报错:Unable to find a Java Virtual Machine

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),这样会避免很多弯路。

原文地址:https://www.cnblogs.com/weiyinfu/p/7443185.html