TypeError: Cannot call property getEncoder in object

TypeError: Cannot call property getEncoder in object

我正在尝试在 java 脚本中使用 java 包 Base64 对字节数组进行编码。 Javascript 引擎是 Rhino。

以下是日志中的错误。

java.util.concurrent.ExecutionException: javax.script.ScriptException: TypeError: Cannot call property getEncoder in object [JavaPackage java.util.Base64]. It is not a function, it is "object". 

下面是代码片段。

var md = java.security.MessageDigest.getInstance('SHA-256');
md.update(salt);
var sha256Bytes = []
sha256Bytes=md.digest(new java.lang.String(givenPassword).getBytes('UTF-8'));
var sha256Hash = java.lang.String(java.util.Base64.getEncoder().encode(sha256Bytes));

我无法弄清楚这里的问题。此外,包 java.util.Base64.* 已导入。

我导入了 class java.util.Base64$Encoder。早些时候我在 java.util.Base64.Encoder 中导入它。不确定 $ 与 '.' 相比有何不同。 .但是,我假设我的应用程序以这种方式导入静态 class。