Oracle SQL Developer 4: Windows and the JDK

thatjeffsmith SQL Developer 103 Comments

Tell Others About This Story:

A few things have changed when it comes to running SQL Developer on a Windows machine. In previous versions, the first thing you’d see when running SQL Developer would be a prompt asking for the location of Java.

Tell SQL Developer where it can find Java

Tell SQL Developer where it can find Java

Turns out, it’s hard for Java applications to run without Java.

On Macs and Linux/Unix environments, we don’t prompt for the location of the JDK. The OS tells us where it is. So why not do this for Windows too?

Well, for version 4.0, we’ve taken care of this.

The .EXE in the top SQL Developer directory does a few things when you run it in version 4.0:

  1. Is this machine 32 or 64 bit OS?
  2. Is Java here?
  3. Write the location of the JDK to the .conf file for future executions

So as long as this EXE can answer these questions successfully, you won’t see the old prompt for the JDK anymore. If it can’t, then it will ask you for some help. This will make getting SQL Developer up and running that much easier for Windows users 🙂

Now, for all time eternal, SQL Developer would look (for Windows) in the sqldeveloper.conf file to see where the JDK is installed and also where you could configure how the JVM runs with the appropriate set parameter flags.

In version 4.0, we no longer look in SQLDeveloper.conf for these specific Java flags and settings.

To accommodate shared Windows machines, we now look into the roaming profiles directory in the Application Data folder. Specifically for SQL Developer, it’s here:

Where we put the java settings for SQL Developer in version 4.0 on Windows

Where we put the java settings for SQL Developer in version 4.0 on Windows

Basically speaking, if you have 3 people sharing a computer, each of them can have their own settings for how to run SQL Developer.

If you open this ‘very well documented’ file, you’ll see the all-important line near the top:

Where is the Java?

Where is the Java?

If you upgrade your Java installation, you’ll need to update this file with the new location or install folder name.

A couple more notes

  • The 4.0 Windows download packages will be:
    1. Windows 32 and 64 bit
    2. Windows with 64 bit JDK (Server JRE)
  • We recommend you run Java 7 with SQL Developer 4

The Server JRE is a subset of the full JDK – but has everything we need to run SQL Developer. We’re making the Windows with Java download setup for 64 bit now as that’s the standard configuration for machines these days. This also includes Oracle SQL Developer Data Modeler.

Related Posts

Tell Others About This Story:

Comments 103

  1. Hi Jeff,

    Briefly put, I’m trying to upgrade SqlDeveloper from 4.0.1 (which works) to 4.1.3, but can’t get 4.1.3 to launch.
    Like you, I’m crazy and have old installations kicking around.

    My config (Win 10 Pro 64) is:

    C:\sqldeveloper
    C:\sqldeveloper-4.1.1.19.59-no-jre
    C:\sqldeveloper4.1.3

    C:\Program Files\Java\jdk1.6.0_45
    C:\Program Files\Java\jdk1.7.0_07
    C:\Program Files\Java\jdk1.8.0_60
    C:\Program Files\Java\jdk1.8.0_65
    C:\Program Files\Java\jre1.8.0_60
    C:\Program Files\Java\jre1.8.0_65
    C:\Program Files\Java\jre7

    C:\ProgramData\Oracle\Java\javapath\java.exe (points to C:\Program Files\Java\jre1.8.0_65\bib\java.exe)

    C:\Users\j4john\AppData\Roaming\sqldeveloper\1.0.0.0.0\product.conf
    C:\Users\j4john\AppData\Roaming\sqldeveloper\4.1.1
    C:\Users\j4john\AppData\Roaming\sqldeveloper\4.1.3\product.conf (Directive: SetJavaHome C:\Program Files\Java\jdk1.8.0_65)

    Windows User Path variable: no reference to Java
    Windows System variable JAVA_HOME: C:\Program Files\Java\jdk1.8.0_65
    Windows System Path: …C:\Program Files\Java\jdk1.8.0_65;…%JAVA_HOME%\BIN;…

    What happens:

    C:\sqldeveloper4.1.3>where java
    returns
    C:\ProgramData\Oracle\Java\javapath\java.exe
    C:\Program Files\Java\jdk1.8.0_65\bin\java.exe

    C:\sqldeveloper4.1.3>echo %JAVA_HOME%
    returns
    C:\Program Files\Java\jdk1.8.0_65

    C:\sqldeveloper4.1.3>java -fullversion
    returns
    java full version “1.8.0_65-b17”

    C:\sqldeveloper4.1.3>java -version
    returns
    Error occurred during initialization of VM
    java/lang/NoClassDefFoundError: java/lang/Object

    C:\sqldeveloper4.1.3>sqldeveloper.exe
    returns nothing, the app doesn’t launch

    So, after a suggestion on http://stackoverflow.com/questions/11808829/jre-1-7-returns-java-lang-noclassdeffounderror-java-lang-object?rq=1 I renamed C:\ProgramData\Oracle\Java\javapath\java.exe to C:\ProgramData\Oracle\Java\javapath\java.exe.was

    What happens:

    C:\sqldeveloper4.1.3>where java
    returns
    C:\Program Files\Java\jdk1.8.0_65\bin\java.exe

    C:\sqldeveloper4.1.3>echo %JAVA_HOME%
    returns
    C:\Program Files\Java\jdk1.8.0_65

    C:\sqldeveloper4.1.3>java -fullversion
    returns
    java full version “1.8.0_65-b17”

    C:\sqldeveloper4.1.3>java -version
    returns
    java version “1.8.0_65”
    Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
    Java HotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)

    C:\sqldeveloper4.1.3>sqldeveloper.exe
    returns nothing, the app doesn’t launch

    Any guidance you could provide will be much appreciated.

    Cheers
    John

    1. thatjeffsmith Post
      Author

      replying from a plane at about 27,000 ft…but seems like your java install is borked? uninstall the 8’s and go get java 8 u101, then try to launch sqldev

      or get the 413 with the embedded jdk – it shouldn’t even look at your isntalled java homes

    2. thatjeffsmith Post
      Author
  2. I need some help, I’m dowloading sqldeveloper 4.1.3 with JDK 8 incluided, but I’ve seen posts that said I have to download the jdk also, and I’m a little confussed.
    My queston is do I have to download jdk or with just download this vertion of sqldveloper it’s enough ?

    1. thatjeffsmith Post
      Author
    2. thanks,I allready download this one but now I have an error when try to connect to the data base server from my laptop I found this message ORA-12705 (Cannot access NLS data files or invalid environment specified) I allready checked tha value for parameters NLS on the data base and are the same that my laptop, so I dont know what is te problem, if You can help me on that I really appreciate it.
      Thanks

    3. thatjeffsmith Post
      Author

      ok, well that has nothing to do with the java, if you didn’t have java setup, you’d never be able to run SQLDev, much less get to the point of a connection error. You need to check the Tools > Preferences > Database > NLS settings and make sure they’re correct

      NLS on the client describes YOUR machine, not the database’s by the way…

    4. Yes in fact I compare this configuration in the sqldeveloper against the database NLS parameters and,just the currency symbol its different in both sides

  3. RESOLVED installing most recent SQL Developer 4.1.3.20.78
    1. Do not use Edge browser, just to be safe. I used IE11 because was preloaded on my Surface Pro4.
    2. INSTALL Java JDK FIRST!!!!
    3. THEN, install the non JDK version (2nd link not the most recent one).
    of SQL Developer.
    4. Even though I have an x64 machine, the files saved to “Program Files” vs. “Program Files x64”.
    5. Extract and run! It finally worked.

  4. I am one of the many also having the same issue with the same file download. I happen to be attempting this on a Surface Pro 4. I have spent hours researching the same “solutions” as Vlad_K. I’m not savvy enough to actually make the changes (to size, etc.), however. I also attempted to download Java JDK and JRE 1.8.0_77 because I have 80hrs of SQL homework due and can’t start until I get Oracle running. I helped a friend download this to a windows 8 Assus laptop that was updated to windows 10 and all is fine there.

    If memory needs to be allocated, or files pointed elsewhere, I understand the file that needs to change but don’t know how to change it.

    Please help, this is killing us! Oracle, you’re so big and strong yet painful to use. 3/30/15 2:43am

    1. thatjeffsmith Post
      Author
    2. SAME EXACT ERROR: UNABLE TO LAUNCH JAVA VIRTUAL MACHINE when I click on ANY .exe file in the download, unextracted folder. And I get the same error in the cmd. I spent another few hours seeking solutions to all the things Vlad_K did below:

      1. I searched for “java” within the BIN file of the extracted file but that messy little note doesn’t reference java.

      3. ^ related to above, I did find “setjavahome” easily in the nice file in user/apps sqldeveloper.conf and deleted only the words after “setjavahome”, restarted but no fix.

      2. Java tells me I have the best installed version (even tho java version isn’t x64 under control panel/programs)
      http://www.wikihow.com/Increase-Java-Memory-in-Windows-7

      4. I also downloaded the offline version, downloaded using Edge (yes I know it won’t run java) AND IE.

    3. thatjeffsmith Post
      Author

      did you download the bigger zip from OTN – it INCLUDES the jdk

      you have to edit product.conf in the appdata directory if you want to point directly to your java home – the EXE should find it automatically though

    4. Yes, of course. Many times, many ways.

      sqldeveloper-4.1.3.20.78-x64 as the site instructs although it download section you should download JDK first but the file details on the main page contradicts that.

    5. I am running windows 10 (#2 was just nice and handy). Should I download Google chrome next?

      I also tried downloading the latest JDK 8u77 x64.exe just to see if it would help. It doesn’t.

      What does the virtual machine error mean? How can I fix it so I can run Oracle on my machine?

    6. thatjeffsmith Post
      Author

      i just emailed you a link to an online meeting, i’ll step you through this – check your spam box, it’s from [email protected] – or let me know your real email address if you used a fake one to post comments here

      i have 15 minutes i can give you right now

    7. Yes, it’s the first one on the SQL download page. And I’ve downloaded it many different ways, placing them in separate folders like “trial1”

      sqldeveloper-4.1.3.20.78-x64

      What java home are you referring to? There’s java under control panel/programs, in the sqldeveloper-4.1.3.20.78-x64 folders, in c://programs.

      I’m a product manager but highly un-techy… So if you direct me to uncomment out something, I’ll need some good instruction 🙂

  5. Need help with prompt from Oracle (11.2.0 XE) SQL Developer (v. 4.1.3, “Windows 64-bit with JDK 8 included”), unzipped into c:\Ora SQL Dev\ on Hyper-V Virtual Machine with Window 10 home as a guest system on a Win 10 Pro host.
    My attempts to start by double clicking on c:\Ora SQL Dev\sqldeveloper.exe return a Window msg box with: “Unable to launch the Java Virtual Machine Located at path: c:\Ora SQL Dev\jdk\jre\bin\server\jvm.dll” (file jvm.dll exists at the pointed location!)
    Running the c:\Ora SQL Dev\sqldeveloper\bin\sqldeveloper64.exe returns the same msg box plus a command (DOS) console with an “explanation” of the inability to launch the same file: “Error: Error loading c:\Ora SQL Dev\jdk\jre\bin\server\jvm.dll”

    I did not pre-install Java since I downloaded the 381 MB SQL Dev package “with JDK 8 included” (Despite its own Installation Notes saying: “This download does not include the JDK. This version requires a Java 8 JDK”, the package contains directory c:\Ora SQL Dev\jdk\ with subfolders jre and lib). I also read remark from another user with the same problem who unsuccessfully tried to solve it by preinstalling JDK and then installing the SQL Dev without JFK 8.
    My troubleshooting steps (all unsuccessful):
    1. Per multiple Internet advices, commented out with “#” the parameter “SetJavaHome ../../jdk” in C:\ Ora SQL Dev \sqldeveloper\bin\sqldeveloper.conf – same result (this file seems to be irrelevant now per Jeff’s explanations that I just found)
    2. Increased VM’s memory (RAM) allocation from 2 to 3 and even to 4 GB – same result
    3. Uncommented the parameter “SetJavaHome /path/jdk” in C:\Users\Vlad\AppData\Roaming\sqldeveloper\4.1.3\product.conf – same result
    4. Renamed that product.conf (which had all lines commented out), tried restarting again – same result, and the new file was created with all comments again.

    1. thatjeffsmith Post
      Author
  6. Hi There,
    These are my configurations.
    1 – sql developer that I am using “sqldeveloper-4.1.0.19.07-no-jre”.
    2 – JAVA_HOME set to jdk1.7.0_79
    3 – product.conf has the path of this java home, as described in the post.
    4 – Oracle 11g is installed successfully before these configurations.

    When I run sql developer, it tells me the minimum requirement is jdk 1.8, on one of my other machine, with same specs, it does not asks me anything. If you have anything that you would like to share will be highly appreciated.

    1. thatjeffsmith Post
      Author
    2. Thank you for the response but it is really amazing that these exact configurations are up and running on my other system. can you please confirm me the version that is compatible with jdk1.7.0.79

    3. thatjeffsmith Post
      Author

      It is amazing, I’m guessing that on your other system you either don’t have version 4.1 of SQLDev or you don’t have Java 8.

      You can use version 4.0.3 with Java 7.

    4. Spot on, you are right. I copied the wrong zip file of sql developer(more recent one) from other machine, it is 4.0.3 on the it(sorry for being naive by saying it was running on other machine).
      Thank you for taking out time to reply on this post, really means to me a lot 🙂

    5. thatjeffsmith Post
      Author
  7. When I have a command like drop table Ctl-Click does not work while F4 does. Strange the line above I have a select from the table I need to drop and Ctl-Click works.

    Any idea ?

    thanks

    1. thatjeffsmith Post
      Author
  8. We are a community college using (and teaching) Oracle SQL Developer 4.1.0.19 on Windows 7 64-bit machines in our classrooms. The machines are in a Microsoft Active Directory environment and are “locked down” with a product called Deep Freeze. The users are not administrators and we are not using roaming profiles. Students log in to the computers and the college network with their individual (unique) accounts, and a new profile is created each time a different user logs in. My JDK is a virtualized app & is 64-bit.

    I need to configure the SQL Developer so that it points to and finds the Java JDK permanently, so that every user does not get the popup window that asks for the location of the JDK. I’ve seen references to a product.conf file, but this version of the SQL Developer does not have that file. I have attempted to modify the “product-user-config.template” file by adding “SetJavaHome C:\Program Files\Java\jdk1.8.0_45” but every new user still gets the popup. I’d also like to be able to kill the first run “Confirm Import Preferences” and “Oracle Usage Tracking” popups that each new user sees as well, but that’s less important than having to have everyone set up the Java environment.

    Please help! I need to get this fixed quickly – our fall classes begin on Monday August 31 and I need to complete my model and deploy an image to several hundred classroom computers by August 21. Thank you!!

    1. thatjeffsmith Post
      Author

      >>Students log in to the computers and the college network with their individual (unique) accounts, and a new profile is created each time a different user logs in.
      This is gonna make it hard, but not impossible.

      You need to setup a script that when it runs, it creates the files we use to store the settings in that tells SQLDev where the jdk is, that it’s on a current version, that you’ve already said yes or no to the prompts.

      Does that make sense?

      So do an install. Set it up the way you want. Then take those files and directory locations and use THAT to image your sqldev environment. It won’t be easy as the files will be all over the place and it will need to be dynamic such that your new student user ID is taken into account for when you lay those files down.

    2. Many thanks for the quick reply, Jeff! I think we can sort this out the way you suggest… believe it or not, we’ve just gone over to Active Directory after being on a Novell network for many years – a lot of other stuff has had to be scripted to make it work, especially since roaming profiles have not yet been discovered here – I shoulda thunk of that! Thx again.

      DK

  9. i even downloaded jdk8 bundeled with netbeans for windows 64 bit but it says its not compatible with my windows version. n am pretty sure my windows is 64 bit. what should i do???? please help!!

    1. yetti, try the 32-bit, that may do it if you have a 32-bit version of Windows.

      also, have you set up the Java environment variables? it may be that you need to create a java_home environment variable, put something about java in your path statement, and create another environment variable called classpath.

      I’m up to my ears just now so am unable to take the time to provide specific instructions on these, but if you need them, please post and I’ll try to put them here for you soon… also if you right-click Computer, click Properties, that page should tell you which edition and operating system type (32- or -64-bit) you have. Good luck!

      Doug

  10. guys please help me!!! i am kinda newbie to programming n i am starting my java classes so i wanted to install netbeans IDE. n i downloaded version 8.0.2 for my windows 7 but when i tried to install it, it said “JDK was not found on this computer” so i downloaded JDK 7 but when i tried to install the jdk, it said “windows can’t open this file” what should i do please help!!!!

    1. thatjeffsmith Post
      Author
  11. Regarding the post of Deniz Atak,
    If you change the locale to english INCLUDING the date and number format to US from Turkish, it works.

    This is a problem of java related with turkish language settings that should be taken care of in the sqldeveloper code.

    1. thatjeffsmith Post
      Author
  12. Hi,
    after downloading SQLDeveloper 4.0.3 for Windows 64bit including JDK (running Version 8.1 64bit on my machine) I can’t start the program. The error I’m getting is:
    Unable to launch the Java Virtual Machine
    Located at path:
    C:\Program Files\sqldeveloper\jdk\bin\msvcr100.dll

    I tried to delete the file located at the roaming … directory but this didn’t help either. The DLL is existing in the path specified and pointing to the location of the JDK directly in product.conf didn’t change anything either.

    What else could I try?

    Best regards,
    Jürgen

  13. Why does the product create “SQL Developer” and “sqldeveloper” directories, both under %USER%\AppData\Roaming?

    SQL Developer wouldn’t start for me; it showed “loading …” as a description for a progress bar in a splash screen, changed that description to something else and closed the window before I could read the change. I couldn’t find any log files or error messages.

    Finally, I just deleted the “SQL Developer” and “sqldeveloper” directories both. After running the application again, it started successfully for the first time. It recreated the two directories, which seems a bit sloppy — but at least I’ve actually got it running!

    1. thatjeffsmith Post
      Author

      The JDev framework, or FCP, writes to the sqldeveloper folder. It stores the JVM settings for all instances of SQL Developer v4 and higher – what JDK to use, how much memory to allocate, etc.

      SQL Developer user application settings are stored under the directory that we directly administer in the ‘SQL Developer” folder.

      Next time run sql developer from the bin directory in a cmd window and you can see any error messages that would cause sqldev to bork.

    2. Users, then, are expected to manage bot h the JDev framework and FCP (what’s that?) as well as SQL Developer?

      It didn’t matter if I started from a console window where sqldeveloper.exe was stored or if I used a shortcut icon I added to my desktop; I didn’t see any output or logging.

    3. thatjeffsmith Post
      Author

      90% of users never need to go into either directory. When something ‘bad’ happens, you may be advised to check those areas.

      Not sure what caused your issue. If deleting the sqldeveloper folder fixed it, it was probably that you upgraded your JDK and the location changed and SQL Dev couldn’t find it anymore. If it was deleting the SQL Developer folder, then it was a user settings file probably that got corrupted.

  14. Hi,

    I am running SQL Developer 4.0.3.16.48 on Windows 7 64-bit. When I start sqldeveloper.exe file, the application starts but there is something wrong with the menus, windows of the app. They are not displayed properly. Only some parts of the letters can be read. When I hover over the menus or windows, I can read what is written, otherwise I can’t.

    I thought the problem might be JDK, I manually set the JDK to point to the right location via product.conf file. But still no good.

    Do you have any reccommendation for this problem?

    Thanks in advance.

  15. For some reason I simply cannot get version 4.0.3 working on my windows 7 64-bit VM (having had it working in the past). I’ve tried pointing it at both a 64-bit and 32-bit version of the jdk (1.7.0_71) and it starts to load and then simply stops. If I run it from a DOS box running as administrator I get no feedback at all.

    I do have the 32-bit version of ODAC installed, but like I said, I have had the two working side by side in the past. However, I’m suspicious that that might be at the root of the problem. To install it I have done a simple unzip of the install file to c:\sqldeveloper. However, I’ve also failed to get it running using the full Oracle client install for 11gR2.

    Is there any logging anywhere that might help?

    I’m running 64-bit Windows 7 in a Virtualbox VM under Mac OS X.

    Many thanks,

    Terry

    1. Update to the above post: the problem only seems to be with 4.0.3. I have now successfully installed 4.0.2 with no problems.

      On watching it very closely, the point at which it fails seems to be when it starts registering extensions.

      Terry

Leave a Reply

Your email address will not be published. Required fields are marked *