这是在JavaScrupt CE 21.3.0的GraalVM解释器外壳中完成的。
试图访问某些Java类(例如java.io.File )会导致以下错误:
TypeError: Access to host class java.io.File is not allowed or does not exist.在没有任何选项的情况下运行shell时,需要大量操作才能获得错误:
new java.io.File()在使用--js.java-package-globals=false运行shell时,只需要这么多:
Java.type("java.io.File")我该如何解决这个问题?如果这些功能应该是提供的,那么为什么它们不能立即发挥作用呢?
发布于 2022-01-04 13:03:16
我假设您缺少了--jvm标志,以便在Java所需的jvm模式下运行js启动程序。
$ ./graalvm-ee-java11-21.3.0/bin/js --eval 'new java.io.File(""); console.log("OK!")'
TypeError: Access to host class java.io.File is not allowed or does not exist.
at <js> :program(Unknown)
$ ./graalvm-ee-java11-21.3.0/bin/js --jvm --eval 'new java.io.File(""); console.log("OK!")'
OK!这是记录在案的这里
要启用Java互操作性,必须向本机启动程序提供--jvm选项。
https://stackoverflow.com/questions/70491559
复制相似问题