julianhyde / sqlline

Shell for issuing SQL to relational databases via JDBC
BSD 3-Clause "New" or "Revised" License
620 stars 146 forks source link

The `promptscript` property is broken on JDK 15 and higher #394

Open julianhyde opened 4 years ago

julianhyde commented 4 years ago

The promptscript property, added in #278, is broken in JDK 15 and higher. The implementation requires the Nashorn JavaScript engine, which was removed in JDK 15. The error is as follows:

java.lang.NullPointerException: Cannot invoke "javax.script.ScriptEngine.eval(String, javax.script.Bindings)" because "engine" is null

A possible fix would be to use an alternative scripting engine, which would need to be added to the classpath.

snuyanzin commented 4 years ago

We could use property to store scripting engine to use. In case there is no specified engine - print a message. + may be to have something similar to !scan to show available scripting engines