I'm unable to pass below rule while installing SQL Server 2017 Developer edition on windows 10 machine on Feature Rules
screen:
I'm getting below error:
This computer does not have the Oracle Java SE Runtime Environment Version 7 Update 51 (64-bit) or higher installed. The Oracle Java SE Runtime Environment is software provided by a third party. Microsoft grants you no rights for such third-party software. You are responsible for and must separately locate, read and accept applicable third-party license terms. To continue, download the Oracle SE Java Runtime Environment from https://go.microsoft.com/fwlink/?LinkId=526030.
I've sufficiently high Java version (9.x) installed on my machine. I ran the command java -XshowSettings:properties -version
which gives below details related to Java installation on my box:
Property settings:
awt.toolkit = sun.awt.windows.WToolkit
file.encoding = Cp1252
file.encoding.pkg = sun.io
file.separator = \
java.awt.graphicsenv = sun.awt.Win32GraphicsEnvironment
java.awt.printerjob = sun.awt.windows.WPrinterJob
java.class.path =
java.class.version = 53.0
java.home = C:\Program Files\Java\jre-9.0.1
java.io.tmpdir = C:\Users\RASIK~1.BIH\AppData\Local\Temp\
java.library.path = C:\ProgramData\Oracle\Java\javapath
C:\Windows\Sun\Java\bin
C:\Windows\system32
C:\Windows
C:\ProgramData\Oracle\Java\javapath
C:\Program Files (x86)\Intel\iCLS Client\
C:\Program Files\Intel\iCLS Client\
C:\Windows\system32
C:\Windows
C:\Windows\System32\Wbem
C:\Windows\System32\WindowsPowerShell\v1.0\
C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL
C:\Program Files\Intel\Intel(R) Management Engine Components\DAL
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT
C:\Program Files\Intel\Intel(R) Management Engine Components\IPT
C:\Program Files\Microsoft SQL Server\130\Tools\Binn\
C:\Program Files\dotnet\
C:\Program Files\Git\cmd
C:\Program Files\nodejs\
C:\Program Files\1E\NomadBranch\
C:\Program Files\TortoiseSVN\bin
C:\Users\rasik.bihari\AppData\Local\Microsoft\WindowsApps
C:\Users\rasik.bihari\AppData\Roaming\npm
.
java.runtime.name = Java(TM) SE Runtime Environment
java.runtime.version = 9.0.1+11
java.specification.name = Java Platform API Specification
java.specification.vendor = Oracle Corporation
java.specification.version = 9
java.vendor = Oracle Corporation
java.vendor.url = http://java.oracle.com/
java.vendor.url.bug = http://bugreport.java.com/bugreport/
java.version = 9.0.1
java.vm.compressedOopsMode = Zero based
java.vm.info = mixed mode
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name = Java Virtual Machine Specification
java.vm.specification.vendor = Oracle Corporation
java.vm.specification.version = 9
java.vm.vendor = Oracle Corporation
java.vm.version = 9.0.1+11
jdk.debug = release
line.separator = \r \n
os.arch = amd64
os.name = Windows 10
os.version = 10.0
path.separator = ;
sun.arch.data.model = 64
sun.boot.library.path = C:\Program Files\Java\jre-9.0.1\bin
sun.cpu.endian = little
sun.cpu.isalist = amd64
sun.desktop = windows
sun.io.unicode.encoding = UnicodeLittle
sun.java.launcher = SUN_STANDARD
sun.jnu.encoding = Cp1252
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
sun.os.patch.level =
sun.stderr.encoding = cp850
sun.stdout.encoding = cp850
user.country = IN
user.dir = C:\Users\rasik.bihari
user.home = C:\Users\rasik.bihari
user.language = en
user.name = Rasik.Bihari
user.script =
user.timezone =
user.variant =
java version "9.0.1"
Java(TM) SE Runtime Environment (build 9.0.1+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.1+11, mixed mode)
Not sure what else this installer is looking for. Has anyone else faced this error? One obvious solution is to skip PolyBase Query Service for External Data
feature i.e. unselect it on Feature Selection
screen but I don't want to do that. I want to resolve this issue as to why it is still interrupting the installation when my machine configuration is meeting all the prerequisites?
I fully explained the root cause and provided a registry edit workaround in an article I published in early December 2017. The problem is the same in SQL Server 2016 and 2017 as mentioned in the article here.
The quick summary is that Oracle changed the registry key structure after version 8 of the JRE. The SQL Server 2016 and 2017 installers look for the JRE version 7 registry key names found at and below:
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
Let's say you want to use JRE version 9 and you don't want to install JRE version 7. You'll have to export the JRE 9 version keys found at HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JRE
and edit them to make the key names match the JRE 7. There are three keys to rename. Import the edited keys. That way the installer will find version 7 key names that are pointing to JRE 9 locations.
Quoting from the part of the article about editing key names:
You want to replace all occurrences of JRE with Java Runtime Environment. You must not alter the lowercase jre references.
For example, change HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\JRE
to HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With