[英]TypeError: invokeMember GraalVM native-image
我正在嘗試使用 GraalVM 創建本機圖像,我的代碼:
import org.graalvm.polyglot.HostAccess;
public class Console {
@HostAccess.Export
public void print(String msg){
System.out.println(msg);
}
}
然后我像這樣調用代碼本身:
public void callMethod(CommonRequest request) throws ScriptException, IOException, NoSuchMethodException {
StringBuilder s = new StringBuilder();
s.append(new PluginJS().load(request.getMethodPath(), true));
Context context = null;
try {
context = Context.newBuilder()
.allowHostAccess(HostAccess.ALL)
.allowAllAccess(true)
.allowCreateThread(true)
.allowHostClassLoading(true)
.allowIO(true)
.allowNativeAccess(true)
.allowCreateProcess(true).build();
putMembers(context.getBindings("js"));
context.eval("js", s.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
context.close();
}
}
private void putMembers(Value value) {
value.putMember("Console", new Console());
}
當我通過 IDE 或 java -jar 運行時它工作正常,但是當我嘗試編譯到本機映像時會引發錯誤。 在錯誤后面跟着用於編譯本機映像的命令行。
錯誤:
類型錯誤:JavaObject [com.compiler.commons.log.Console@113a2d320 (com.compiler.commons.log.Console)] 上的調用成員(打印)失敗,原因是:未知標識符:打印
命令行
graalvm-ce-java8-20.0.0/Contents/Home/bin/java -jar -agentlib:native-image-agent=config-merge-dir=/Users/ze/Documents/java/tool/config compiler-1.0-SNAPSHOT-jar-with-dependencies.jar
graalvm-ce-java8-20.0.0/Contents/Home/bin/native-image --language:js --initialize-at-build-time nomeApp -jar compiler-1.0-SNAPSHOT-jar-with-dependencies.jar
請問有人可以幫我嗎? 多謝
我已經解決了,我需要清理“/config”文件,沿着代理執行應用程序,然后編譯添加一些不同的參數。 見下文:
代理人
/Users/ze/Documents/programs/graalvm-ce-java8-20.0.0/Contents/Home/bin/java -jar -agentlib:native-image-agent=config-merge-dir=/Users/ze/Documents/gitprojects/java/tool/config ./target/compiler-1.0-SNAPSHOT-jar-with-dependencies.jar
編譯
sudo /Users/ze/Documents/programs/graalvm-ce-java8-20.0.0/Contents/Home/bin/native-image --language:js --initialize-at-build-time -H:+AllowIncompleteClasspath -H:+ReportExceptionStackTraces --report-unsupported-elements-at-runtime -H:ConfigurationFileDirectories=/Users/ze/Documents/gitprojects/java/tool/config nameOfApp -jar ./target/compiler-1.0-SNAPSHOT-jar-with-dependencies.jar
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.