Inhaltsverzeichnis
SQLcl - This application requires a Java runtime 1.8.xxx unter MS Windows
07.2020
Die aktuellen Versionen von SQLcl ( wie SQLcl 20.2 , Download über https://www.oracle.com/tools/downloads/sqlcl-downloads.html) benötigen auch eine aktuelle Java Version, im Fall von 20.2 ein Java min. 1.8.0.220.
Durch die geänderten Lizenzbedingungen ist aber immer seltener auf einem Server oder gar auf einem PC in einer Kunden Umgebung noch ein aktuelles Java installiert.
Zum Glück ist Oracle aber zur Zeit noch so gnädig, dass Ihre eigenen freien Produkte auf Java Basis noch ohne Lizenzkosten Java verwenden dürfen. D.h. solange auf einem Produkt Oracle als alleiniger Hersteller steht, darf das Oracle JDK noch weiter kostenfrei auch verwendet werden.
Daher wir laden im ersten Schritt auch den SQL*Developer herunter ( https://www.oracle.com/tools/downloads/sqldev-downloads.html, die Variante Windows 64-bit with JDK 8 included ) und verwenden das dort mitgelieferte Java auch mit für SQLcl.
Der erste Versuch
Im Prinzip müssten wir jetzt ja nur den PATH auf ../sqldevepler/jdk/jre/bin und das JAVA_HOME auf ../sqldevepler/jdk/jre setzen und alles sollte einfach wie immer mit Java funktionieren.
ABER …
This application requires a Java Runtime Environment 1.8.0_220
set PATH=H:\tools\sqldeveloper\jdk\jre\bin;%PATH% set JAVA_HOME=H:\tools\sqldeveloper\jdk\jre java -version java version "1.8.0_221" sql.exe /nolog This application requires a Java Runtime Environment 1.8.0_220
Und öffnet auch netterweise, damit Oracle auch die Verwendung von SQLcl tracken kann, die passende Website.
Wie oft und meist mit dem SQL*CL ist das unter Windows nicht so ganz einfach und logisch.
Diese Plattform scheint den Entwickler wohl etwas zu unbedeutend zu sein, um hier einfache Lösungen anzubieten. Evtl. würde es wohl hier sehr helfen wenn wenigstens ein Entwickler auch auf dieser Plattform arbeitet und das ganze auch mal wirklich vor Live Gang testet.
Jedesmal wieder gibt es neue Überraschungen und Ecken mit Zeichensätzen und Pfaden. Und jedesmal muss was trivales per Hand/Script angepasst werden.
Sehr schade das an so Kleinigkeiten bei dem ansonst doch recht guten Tool scheitert.
Oracle vergisst hier gerne das Kunden an den kleinen Dingen scheitern und sich daher Oracle Produkte außerhalb unsere Community einen recht schlechten Ruf erarbeitet haben.
Aber wie das ganze lösen?
Debuggen und selber suchen, Google fragen, Threads (siehe Quellen) lesen und dann findet sich kaum eine Stunde später eine Lösung.
Lösung
Das JDK MUSS neben dem SQL*CL Ordner liegen, ein paar Pfade sind halt relativ zum SQL*CL Home, war für ein Pfusch …
JDK Verzeichnis aus dem SQL Developer parallel zu Ordner sqlcl ablegen, alle Pfade darauf setzen und es geht.
ls ./jdk ./sqlcl set JAVA_HOME=H:\tools\sqlcl\jdk\jre set PATH=H:\tools\sqlcl\jdk\jre\bin H:\tools\sqlcl\bin\sql.exe /nolog
Aber warum muss das so sein? Das scheint schon seit der Version 18 ein Problem zu sein….
Als nächstes heißt es nur noch herausbekommen warum der Start mit /nolog gefühlt fast 30s dauert und Umlaute mal wieder überhaupt nicht dargestellt werden können, aber das Problem kennen wir ja schon sehr lange.