13

I've just installed SQL Developer 4.1.1 64-bit on a Windows Vista machine, in directory c:\sqldeveloper.

My Java installation is in c:\program files\java and I have two sub- directories:

c:\program files\java\jdk1.8.0_31
c:\program files\java\jdk1.8.0_25

I have modified the jdf.conf and sqldeveloper.conf files in the c/sqldeveloper/sqldeveloper/bin directory. jdf.conf was empty and I added the following line:

SetJavaHome

c:\program files\java\jdk1.8.0_31

sqldeveloper.conf:

#SetJavaHome ../../jdk    <===== This is what is was 
SetJavaHome c:/program files/java/jdk1.8.0_31 <======= I changed it to this

I even moved the missing file "msvcr100.dll" it was asking for to the c:/sqldeveloper/sqldeveloper/bin directory.

I got the following error messages:

  1. This application has failed to start because msvcr100.dll was not found. Re-installing this application may fix this problem

  2. Unable to launch the java virtual machine located at path

    c:\sqldeveloper\jdk\jre\bin\server\jvm.dll

The file msvcr100.dll is in the Java directory c:/program files/java/jdk1.8.0_31/bin.

The file jvm.dll is in the Java directory c:/program files/java/jdk1.8.0_31/bin/jre/bin/server.

I modified product.conf:

#SetJavaHome /path/jdk   <===== This is what it was
SetJavaHome C:/Program Files/Java/jdk1.8.0_31   <====== This is what I changed it to

I have a copy of msvcr100.dll in sqldeveloper/sqldeveloper/bin folder and in the c:/program files/java/jdk1.8.0_31/bin folder.

To run SQL Developer I click on sqldeveloper.exe in the c:/sqldeveloper/sqldeveloper/bin directory.

Is I am running it on the correct way?

Aniruddh Parihar
  • 3,072
  • 3
  • 21
  • 39
jperson19468
  • 147
  • 1
  • 1
  • 8
  • You're mixing up forward and backslashes in your question but you may not be in your files. But you should be launching c:\sqldeveloper\sqldeveloper.exe. That seems to be a wrapper that decides whether to run the 32-bit version, which is what you are currently manually running from the sqldeveloper\bin sub-directory, or the 64-bit version, sqldeveloper64w.exe also from that sub-directory. I run the 64w version directly without any problems so far. Is the JDK you're pointing it to 32- or 64-bit? (Also which 64-bit SQLDev did you download; 64-bit only with its own JVM, or 32/64-bit without?) – Alex Poole Oct 01 '15 at 16:07
  • Should the slashes be forward or backward? (I want to double check the slashes). jdk1.8.0_31 is for 64-bit version.(verified this with a Google search) I downloaded this version of the sqldeveloper file: sqldeveloper-4.1.1.19.59-x64.zip it has a self-install. It also says "Windows 64-bit with JDK 8 included" – jperson19468 Oct 02 '15 at 01:48
  • It's conventional to use backslashes on Windows but doesn't really matter any more, and it looks like SQL Developer uses forward. So I guess ignore that part. Not sure why you're Googling to check; what does `java -version` say, for the version you're trying to run SQL Developer against - 'Server VM' or '64-Bit Server VM'? Is that the version that was installed by SQL Developer or one you downloaded yourself? – Alex Poole Oct 02 '15 at 08:04
  • The "Windows 64-bit with JDK 8 included" comes with JDK 1.8.0_45, and SetJavaHome should be left as ../../jdk to pick that up. You've changed your config to point to your own prior installation of a JDK, but that may be 32-bit. Did you try to launch SQL Developer before modifying the config files? Did you run the .exe in the top directory rather than the sqldeveloper\in subdirectory? At this point I'd start again with the _45 version and see what happens; possibly extracting everything from the zip file from scratch, and reverting or trashing your product.conf. – Alex Poole Oct 02 '15 at 08:22
  • I am trying something with the path at the moment. Lets see what happens – jperson19468 Oct 03 '15 at 00:55
  • From Oracle: The Windows EXE requires a MSVCR100.dll to run. Most computers will already have this file and in the Windows PATH. However, if the first copy of the file found by the EXE is a 32-bit copy of the DLL, then SQL Developer will fail to start. You can fix this by copying a 64-bit version of the DLL into the BIN directory or updating your OS PATH such that a 64 bit copy of the DLL is found first. – Erik Anderson Mar 18 '17 at 18:10

6 Answers6

17

I ran in to the same problem myself, trying to run SQL Developer 4.1.1 64-bit with JDK on a Windows Server 2008. I've installed SQL Developer many times over the years from 1.x to 4.1.1 and never encountered this until now.

I solved it by copying the MSVCR100.dll file from sqldeveloper\jdk\jre\bin to the sqldeveloper\sqldeveloper\bin folder.

Update 3/18/2017:

In downloading the latest version from Oracle's website, I found this in the installation notes which confirms and explains the issue:

Note: the Windows EXE requires a MSVCR100.dll to run. Most computers will already have this file and in the Windows PATH. However, if the first copy of the file found by the EXE is a 32-bit copy of the DLL, then SQL Developer will fail to start. You can fix this by copying a 64-bit version of the DLL into the BIN directory or updating your OS PATH such that a 64 bit copy of the DLL is found first.

Erik Anderson
  • 4,915
  • 3
  • 31
  • 30
  • Many thanks !!! For Windows 7 + sqldeveloper-18.2.0.183.1748-x64 I copied msvcr120.dll from sqldeveloper\jdk\bin to sqldeveloper\sqldeveloper\bin and now I can start SQL Developer !!! – marcam Aug 30 '18 at 14:41
4

Only create the directory /sqldeveloper/jdk/bin and copy The file msvcr100.dll is in the directory.

Then /bin don't exist is in the /sqldeveloper/jdk

1

I have faced this similar issue on my local system.
I have solved this issue by copying bin directory from insatallation_directory/jdk/jre to insatallation_directory/jdk/

Anshu Mishra
  • 361
  • 1
  • 7
  • 18
0

You need to copy the msvcr100.dll file from sqldeveloper/jdk/jre/bin/msvcr100.dll to sqldeveloper/sqldeveloper/bin/. Then just open SQL Developer again.

Tunaki
  • 132,869
  • 46
  • 340
  • 423
0

You only need to create the directory \bin in sqldeveloper \sqldeveloper\jdk\bin and copy the msvcr100.dll file in this new directory.

0

Got the same issue with newest versions.

Interestingly enough, msvcr100.dll is present in JRE 1.8.0_251, but not in JRE included in JDK 1.8.0_261. Even though I run SQL Developer with included JDK, it tried to use my installed JRE 1.8.0_261.

Resolution was simply to copy missing msvcr100.dll from any other place (like jre1.8.0_251\bin or maybe even Windows/System32) to the JRE used by SQL Developer. In my case to jdk1.8.0_261\jre\bin.