0

Oracle JDK 8 がインストールされており、バージョン 21.3 の SQLcl があります。シンプルな js スクリプトを実行したいのですが、SQLcl で js エンジンが見つかりません。

Windows 10 で PowerShell から SQLcl を実行します。

PS C:\run_scripts_sqlcl> sql /nolog
Picked up JAVA_TOOL_OPTIONS: -Duser.language=en


SQLcl: Release 21.3 Production on Thu Nov 04 00:32:25 2021

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

SQL> show java
Java Detail
-----------
java.home= C:\Program Files\Java\jdk1.8.0_311\jre
java.vendor= Oracle Corporation
java.vendor.url= http://java.oracle.com/
java.version= 1.8.0_311
--------------------------------------------------------------------------------
os.arch= amd64
os.name= Windows 10
os.version= 10.0
path.separator= ;
file.separator= \
line.separator=

user.dir= C:\run_scripts_sqlcl
user.home= C:\Users\user
user.name= Roman.Shiryaev
user.language= en
user.region= null
file.encoding= Cp1251
Used memory: 57.2MB
Max available memory: 1,820.5MB
--------------------------------------------------------------------------------
SQL_HOME=null
Classpath

--------------------------------------------------------------------------------
null
SQL> script
  2  print('hi');
  3* /
js language engine not found
Please add js language engine to the classpath
SQL>

何かを正しく構成していないようですが、スクリプトを実行するための SQLcl の構成に関する情報が見つかりません。環境変数 CLASSPATH を %JDK_HOME%/bin に設定しようとしましたが、役に立ちませんでした。ヒントをいただければ幸いです。

4

1 に答える 1

0

Oracle サポートに連絡した後、次のようにアドバイスされました。

  • 特にインストーラー経由でインストールされた、既存のすべてのJavaを削除します
  • Java 11 JDK をダウンロード
  • jdkと同じ階層のフォルダに配置します。sqlcl
  • jre内部にフォルダを作成し、フォルダの内容を1 つjdkにコピーしますjdkjre

このようなアクションの後、最終的にスクリプトを実行することができました。PATH変数またはJAVA_HOMEから解決しないため、WindowsでJavaパスを解決するのは非常に混乱しているようです。

于 2021-12-14T08:31:06.243 に答える