0

Node.js コードで Java コードを呼び出そうとしていますが、実行すると

 % ls -la /Users/ekolotyluk/.m2/repository/com/fispan/crypto/common/0.1.0-SNAPSHOT/common-0.1.0-SNAPSHOT.jar
-rw-r--r--@ 1 ekolotyluk  staff  15218 17 Mar 06:19 /Users/ekolotyluk/.m2/repository/com/fispan/crypto/common/0.1.0-SNAPSHOT/common-0.1.0-SNAPSHOT.jar    

% $GRAALVM_HOME/bin/node --jvm —-vm.cp=/Users/ekolotyluk/.m2/repository/com/fispan/crypto/common/0.1.0-SNAPSHOT/common-0.1.0-SNAPSHOT.jar --polyglot src/index.js

私は戻ってきます

internal/modules/cjs/loader.js:815
  const err = new Error(message);
          ^

Error: Cannot find module '/Users/ekolotyluk/dev/fispan/microservices/file-service/—-jvm.cp=/Users/ekolotyluk/.m2/repository/com/fispan/crypto/common/0.1.0-SNAPSHOT/common-0.1.0-SNAPSHOT.jar'
    at Function._resolveFilename (internal/modules/cjs/loader.js:815:15)
    at Function._load (internal/modules/cjs/loader.js:667:27)
    at Function.executeUserEntryPoint (internal/modules/run_main.js:60:12)
    at internal/main/run_main_module.js:17:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
  1. vm.cp=オプションへのパラメーターである場合、Graal-node はなぜ私の jar がノードモジュールであると考えるのですか?
  2. Graal-nodeが--vm.cp=オプションを壊しているようです
  3. jarファイルへのファイルシステムパスを数回確認しましたが、実際にはそこにあります
  4. どこかに欠けているものは他にありますか?
  5. Node.js から Java ライブラリを呼び出すことはできますが、独自のコードを呼び出したい...

私のGraalバージョンは

% java -version
openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment GraalVM CE 21.0.0.2 (build 11.0.10+8-jvmci-21.0-b06)
OpenJDK 64-Bit Server VM GraalVM CE 21.0.0.2 (build 11.0.10+8-jvmci-21.0-b06, mixed mode, sharing)

どんなアイデアでも大歓迎です...

さらに調査してコマンドを実行した後

$GRAALVM_HOME/bin/node --help
$GRAALVM_HOME/bin/node --help:vm

私が読んでいるすべてのドキュメントと例とは対照的に--vm.cp=、オプションはないようです。

4

2 に答える 2

0

--vm.cp=さて、私が読んできたすべてのドキュメントと例に反して、もうオプションはないようです。

回避策は次のとおりです。Node.jsコードで次のようなものを使用します

Java.addToClasspath("/Users/ekolotyluk/.m2/repository/com/fispan/crypto/common/0.1.0-SNAPSHOT/common-0.1.0-SNAPSHOT.jar")

自分へのメモ: Google 検索を行うと、何が最新の情報で何が古い情報なのかほとんどわかりません。

于 2021-03-17T21:24:01.937 に答える