Hi,
according to https://www.oracle.com/tools/sqlcl/sqlcl-relnotes-26.2.html it should be possible to use graalvm to enable javascript support within sqlcl.
With graalvm 17 running out of premier support in september I wonder if I can use a graalvm 21 or graalvm 25 version as well. And if so: how?
In mac os I was able to use the “gu” utility to install the javascript plugin. In Oracle linux 8 it's even easier by just installing the graalvm-17-javascript.x86_64.
But how can I do this with graalvm 21 or graalvm 25? the “gu” went away and it seems it is now more for the application to “depend” (using maven) on the graaljs libraries.
Is this somehow usable with sqlcl? If so: How?
Without any special things when using brew install graalvm-jdk@25:
SQL> show java
Java Detail
-----------
java.home= /Library/Java/JavaVirtualMachines/graalvm-25.jdk/Contents/Home
java.vendor= Oracle Corporation
java.vendor.url= https://java.oracle.com/
java.version= 25.0.3
----------------------------------------------------------------------------------------------------------------------------------------------------------
os.arch= aarch64
os.name= Mac OS X
os.version= 26.5.2
java.library.path=
/Users/jmichler/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
path.separator= :
file.separator= /
line.separator=
user.dir= /Users/jmichler/devprojects/ebs
user.home= /Users/jmichler
user.name= jmichler
user.language= de
user.region= DE
file.encoding= UTF-8
Used memory: 34,3MB
Max available memory: 2.048,0MB
----------------------------------------------------------------------------------------------------------------------------------------------------------
SQL_HOME=/Users/jmichler/devprojects/ebs/sqlcl
Classpath
/Users/jmichler/devprojects/ebs/sqlcl/lib/slf4j-jdk14.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/slf4j-api.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/xmlparserv2_sans_jaxp_services.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/poi-ooxml-lite.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-mle-command-extension.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-opm.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-liquibase.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/ucanaccess.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-aq.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-diff.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/xmlbeans.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-ai-enrichment.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-modeler-common.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/hsqldb.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-skills.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-langdata.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-modeler-cli-ext.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/cpat.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/pushd-popd-dirs.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/commons-cli.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-data.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-cpat.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/liquibase-core.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-dg.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-jobs.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-datapump.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/opencsv.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-fleet-agent.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-rest.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-sdks-installer.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-mdb.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-sqlcl-awr-extension.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/jackcess.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/apexlang-compiler.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-apex.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-blockchain.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-project.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-copy.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ext/dbtools-ai.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/low-level-api.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/sshd-sftp.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/sshd-scp.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jcl-over-slf4j.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/slf4j-api.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/slf4j-jdk14.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/poi-scratchpad.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jsoup.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jna.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/gson.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/failureaccess.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/error_prone_annotations.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-win32.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/curvesapi.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/commons-math3.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/SparseBitSet.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/JavaEWAH.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jackson-datatype-jsr310.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jackson-databind.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/vavr.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/vavr-match.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/resilience4j-core.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/resilience4j-circuitbreaker.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jersey-apache-connector.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/javassist.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/aopalliance-repackaged.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/httpclient.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/httpcore.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/hk2-utils.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/hk2-locator.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/hk2-api.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jersey-hk2.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jakarta.xml.bind-api.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jakarta.activation-api.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jackson-module-jakarta-xmlbind-annotations.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jersey-entity-filtering.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jersey-media-json-jackson.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jersey-client.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/osgi-resource-locator.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jakarta.inject-api.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jersey-common.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jakarta.annotation-api.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jakarta.ws.rs-api.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/reactor-core.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/reactive-streams.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jackson-dataformat-yaml.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/itu.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/json-schema-validator.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/mcp-json-jackson2.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/mcp-core.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-skills-core.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-mcp.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/opennlp-tools.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/fontbox.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/pdfbox.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/api.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/tokenizers.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/onnxruntime.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/langchain4j-document-parser-apache-poi.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/langchain4j-document-parser-apache-pdfbox.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/langchain4j-community-oci-genai.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/langchain4j-oracle.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/langchain4j-http-client-jdk.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/langchain4j-http-client.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/langchain4j-embeddings.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/langchain4j-core.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/langchain4j.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/snakeyaml.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/quartz.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/parsson.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jakarta.json-api.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/org.eclipse.jgit.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/json-flattener.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/json-base.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/log4j-api.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/poi-ooxml.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/poi.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/commons-compress.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/commons-collections4.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/commons-text.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/commons-lang3.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/commons-io.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/orai18n.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jackson-jr-stree.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jackson-jr-objects.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jackson-core.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ST4.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/oraclepki.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jackson-annotations.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/httpcore5-h2.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/httpcore5.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/orajsoda.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/httpclient5.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/orai18n-utility.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ucp11.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/ojdbc11.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-sqlcl.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-net.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-http.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-common.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-arbori.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-rag.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/guava.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-oci.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-core.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/sshd-putty.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/sshd-contrib.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/sshd-osgi.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/commons-codec.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jdbcrest.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/orai18n-mapping.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/jline.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/antlr4-runtime.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/antlr-runtime.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-net.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-http.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-common.jar
/Users/jmichler/devprojects/ebs/sqlcl/lib/dbtools-sqlcl.jar
----------------------------------------------------------------------------------------------------------------------------------------------------------
/Users/jmichler/devprojects/ebs/sqlcl
SQL> script
2 context.write("test");
3* /
JavaScript-Engine nicht gefunden.
GraalVM mit Unterstützung von Nodejs/Javascript ist erforderlich.
Download:
https://www.oracle.com/downloads/graalvm-downloads.html
Stellen Sie sicher, dass NodeJS/Javascript gemäß der Dokumentation installiert wird
https://docs.oracle.com/en/graalvm/jdk/17/docs/reference-manual/graalvm-updater/#install-components
SQL>