Skip to Main Content



For appeals, questions and feedback, please email

SQLcl 23.3 warns about an illegal reflective access operation

rode_mbDec 12 2023 — edited Dec 13 2023


my script is writing the full output to a logfile. SQLcl on JDK11 throws a warning on every launch. Here is a minified example:

function doit {
sql /nolog <<EOF
prompt Some SQL
return $?

doit 2>&1 | tee logfile.txt

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.jline.terminal.impl.exec.ExecTerminalProvider (file:/opt/sqlcl/lib/jline.jar) to constructor java.lang.ProcessBuilder$RedirectPipeImpl()
WARNING: Please consider reporting this to the maintainers of org.jline.terminal.impl.exec.ExecTerminalProvider
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

SQLcl: Release 23.3 Production auf Mo. Dez. 11 14:02:50 2023

Copyright (c) 1982, 2023, Oracle. All rights reserved. Alle Rechte vorbehalten.

Some SQL

Since it says “All illegal access operations will be denied in a future release”, i wonder if someone knows a better way to catch the output without the warning or will there be a solution in future SQLcl releases?



EDIT: had to edit the description. JDK17 works as expected, only JDK11 throws the warning.

This post has been answered by rode_mb on Jan 29 2024
Jump to Answer
Post Details
Added on Dec 12 2023
1 comment