I want to run Oracle SQL Devloper
on Ubuntu with this command:
sh sqldeveloper/sqldeveloper.sh
Then I got this message:
In my case (Oracle SQL Developer 4.1.3) it seems to be problem with Java version - when I point to Java 8 JDK instead of 11, it started working immediately.
For me it was similar error. I solved it simply by inserting
SetJavaHome /usr/lib/jvm/java-7-openjdk-amd64/
into ~/.sqldeveloper/4.0.0/product.conf file.
You only have the Java JRE installed, you need to install the JDK in order for Oracle SQL Devloper to work.
TL;DR
Install the JDK, type sudo apt-get install openjdk-7-jdk
in a terminal.
To check if you have the JDK installed, type aptitude search openjdk-7-jdk
in the terminal. If you see an i
beside either package then it is installed. For example, I have the 64-bit JDK installed on my machine, this is the output.
$ aptitude search openjdk-7-jdk
i openjdk-7-jdk - OpenJDK Development Kit (JDK)
p openjdk-7-jdk:i386 - OpenJDK Development Kit (JDK)
If the package does not have an i
beside it, then it is not installed.
To install in the JDK in ubuntu you need to install the package openjdk-7-jdk. Install by running sudo apt-get install openjdk-7-jdk
in a terminal.
After installing the JDK you need to set the JAVA_HOME environment variable.
You can see all the installed JDKs on your machine by running update-java-alternatives -l
, choose the one you want to use and copy the third field, this field is the JAVA_HOME for that JDK.
For example, on my machine
$ update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
This means I only have one JDK installed, java-1.7.0-openjdk-amd64
, and its JAVA_HOME is /usr/lib/jvm/java-1.7.0-openjdk-amd64
.
Next, set the JAVA_HOME environment variable, in Bash I would set it by running this from the terminal:
$ export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
Check to make sure it was set correctly.
$ echo $JAVA_HOME
/usr/lib/jvm/java-1.7.0-openjdk-amd64
This will set JAVA_HOME for your current terminal session, to not have to worry about setting it again, you can add it to your ~/.bashrc
file.
Once the JDK is installed and the JAVA_HOME environment variable set, you can move into the sql developer directory and run the sqldeveloper.sh script.
$ cd sqldeveloper
$ ./sqldeveloper.sh
If sqldeveloper.sh is not executable run chmod +x sqldeveloper.sh
and run the script again.
For completeness, you can check what Java packages you have installed by running aptitude search openjdk-7
. If you have the JRE installed you will se an i
beside a package that begins with openjdk-7-jre
$ aptitude search openjdk-7
p openjdk-7-dbg - Java runtime based on OpenJDK (debugging symbols)
p openjdk-7-dbg:i386 - Java runtime based on OpenJDK (debugging symbols)
p openjdk-7-demo - Java runtime based on OpenJDK (demos and examples)
p openjdk-7-demo:i386 - Java runtime based on OpenJDK (demos and examples)
p openjdk-7-doc - OpenJDK Development Kit (JDK) documentation
i openjdk-7-jdk - OpenJDK Development Kit (JDK)
p openjdk-7-jdk:i386 - OpenJDK Development Kit (JDK)
i openjdk-7-jre - OpenJDK Java runtime, using Hotspot JIT
p openjdk-7-jre:i386 - OpenJDK Java runtime, using Hotspot JIT
i openjdk-7-jre-headless - OpenJDK Java runtime, using Hotspot JIT (headless)
p openjdk-7-jre-headless:i386 - OpenJDK Java runtime, using Hotspot JIT (headless)
i openjdk-7-jre-lib - OpenJDK Java runtime (architecture independent libraries)
v openjdk-7-jre-lib:i386 -
p openjdk-7-jre-zero - Alternative JVM for OpenJDK, using Zero/Shark
p openjdk-7-jre-zero:i386 - Alternative JVM for OpenJDK, using Zero/Shark
p openjdk-7-source - OpenJDK Development Kit (JDK) source files
p uwsgi-plugin-jvm-openjdk-7 - Java plugin for uWSGI (OpenJDK 7)
p uwsgi-plugin-jvm-openjdk-7:i386 - Java plugin for uWSGI (OpenJDK 7)
p uwsgi-plugin-jwsgi-openjdk-7 - JWSGI plugin for uWSGI (OpenJDK 7)
p uwsgi-plugin-jwsgi-openjdk-7:i386 - JWSGI plugin for uWSGI (OpenJDK 7)
I've faced with similar issue. Tried published recommendations but unsuccessfully. Possible the reason I'm using sdkman
to manage java versions, may be something with permissions because of Mac OS.
For Mac user it is important try manage configuration:
SetJavaHome {{path to your java}}
in ~/.sqldeveloper/{{sql-dev-version}}/product.confthis step could help if you are using jdk installed by brew following default path.
If you've installed openjdk with sdkman
path to java will be like ~/.sdkman/candidates/java/{{java-version}}
and this path needs to be mapped on default expectations with aliases.
I did not have information about the default path, so it needs to find executable file:
error message
);ps ux | grep sql
- it will help you to detect executable file location sqldeveloper.sh
;/usr/libexec/java_home
;export JAVA_HOME=$TMP_PATH
and replace path with your path to java home or simply remove line if JAVA_HOME
was specified in OS settings.