【发布时间】:2019-11-26 14:32:50
【问题描述】:
我在 Graal JVM (graalvm-ce-java8-19.3.0) 上运行 Java 程序,并在该程序中通过 Graal.js 引擎运行 JS 脚本。我想为那个 JS 脚本(不是 Java 程序)配置远程调试连接。我已经发现 Graal has support for that 可以通过 Chrome DevTools 协议/标准进行调试。
文档解释了如何使用独立的 Graal.js 解释器,但 also says 表示您可以在 JVM 中使用相同的选项,方法是在它们前面加上 -Dpolyglot。
所以你需要使用-Dpolyglot.inspect,而不是--inspect:
java -Dpolyglot.inspect=9229 -jar app.jar
这非常适合本地调试 - 所有这些都如 here 和 here 所述。
现在我尝试通过设置-Dpolyglot.inspect=exampleHost:9229 将其用于远程调试,其中exampleHost 解析为我的外部IP。不幸的是,这个设置会阻止 Graal.js 引擎正确初始化。没有太多关于真正错误的迹象,只有 stderr 上的这个消息:
ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory:
Provider com.oracle.truffle.js.scriptengine.GraalJSEngineFactory could not be instantiated
是否表示不支持远程配置? 这里有什么问题?
【问题讨论】:
标签: java remote-debugging graalvm graaljs