问题标签 [graalvm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
176 浏览

java - GraalVM:允许外部脚本访问本机编译对象

我正在创建一个 java/groovy 应用程序,它还支持通过 groovy 编写脚本。有很多遗留的 Java 代码和用 Groovy 编写的新部分。除此之外,该应用程序还可以使用 groovy 编写脚本。

我可以让所有东西都在 VM 下运行,并像过去一样混淆 jar 中的符号 - 没问题。但:

我正在评估使用 GraalVM 创建本机二进制文件,但问题是它如何与在运行时运行外部 groovy 脚本兼容?graal 是否保留类和方法的符号信息,以及方法调用的数据交换如何从脚本处理到本机?我不确定这是否会奏效。

从过去的类似项目中,我知道在大多数情况下,本机编译会去除任何符号的二进制文件。我还需要这个功能来代替混淆。计划是为某些方法和对象保留符号,这些符号只允许由外部 groovy 脚本访问。

澄清:这尤其与 GroovyScriptEngine 和 CroovyClassLoader 有关。此处为第 1.3 和 1.4 节。

与 groovy VM 相比,GraalVM 的内存模型如何编译 groovy?如果我在运行时加载一个类并将一个从本机端创建的对象 foo 传递给它,那么脚本是否可以正常工作并能够正常使用成员,甚至可以对 foo 进行反射?

谢谢您的帮助。

0 投票
3 回答
154 浏览

groovy - 如何将 picocli groovy-grape 脚本转换为本机独立应用程序?

我用 picocli 制作了我的第一个 groovy CLI 应用程序。现在,我希望它可以在客户端机器上不安装任何 JVM 的情况下使用,也许可以使用 GraalVM。这是一个开源项目: https ://github.com/kchaitanya863/db2csv

0 投票
0 回答
468 浏览

aws-lambda - Graal 原生镜像调用 https 抛出引发:java.security.InvalidAlgorithmParameterException:trustAnchors 参数必须为非空

我正在生成一个进行 https 调用的 Graal 本机图像。问题是它在尝试拨打电话时抛出异常:

痕迹:

以前我必须手动向 reflect.json 添加一堆类,直到我不知道如何继续:

Github 上有一个项目:https ://github.com/codependent/graal-app

要测试它运行:

  1. export AWS_DEFAULT_REGION=eu-central-1
  2. docker build . -t graap-app
  3. ./sam-local.sh

更新:

我在https://github.com/oracle/graal/blob/master/substratevm/JCA-SECURITY-SERVICES.md找到了与安全相关的文档

我删除了我添加到 reflect.json 的所有类,而是将--enable-all-security-services标志放入native-image位于build-native-image.sh.

现在错误是:

原因:java.security.InvalidAlgorithmParameterException:trustAnchors 参数必须为非空

0 投票
1 回答
228 浏览

ceylon - 如何为 Ceylon 生成 GraalVM 本机映像?

我尝试--static -jar与 Ceylon 编译的 fat jar 一起使用:

default.jar是一个胖罐子生产的ceylon fat-jar。)

但我有UnsupportedFeatureException一句话java.lang.Class.getConstantPool()是不支持的。

ceylon 程序只是一个简单的 hello world(打印出一个字符串)。

Ceylon 和 GraalVM 版本:

完整的错误日志:

0 投票
1 回答
220 浏览

java - 检查 Java 库与 GraalVM 的兼容性

我正在研究 GraalVM,我想尝试使用我在项目中使用的一些库。有一些工具可以检查整个代码并给我一个关于与 GraalVM 原生映像不兼容的代码的报告?

在此先感谢,戴维德

0 投票
1 回答
525 浏览

javascript - JSR-223:如何将可变参数主机函数绑定到 ScriptEngine

我正在尝试通过ScriptEngineJava VM下的JSR-223运行Javascript来调用用户提供的代码并将其传递给“promise-style”回调:即一个不接受任何参数的函数(成功完成但没有值);单个参数(null用于成功完成,没有值或错误对象);或两个参数(null成功完成,一个值)。

我为此使用 GaalVM,并将我的回调放入 Javascript 绑定对象中。像这样的东西:

问题是我不知道要放置什么作为"callback"绑定:

我试过简单的:

在这种情况下,使用两个参数调用回调可以正常工作,但是使用单个参数(或没有参数)我得到错误:

我试过得到一个Object像这样的数组:

这导致 GraalVM 向我扔了这个:

我目前正在考虑在 Javascript 中进行手动多调度 - 基本上定义多个回调主机函数,然后在 Javascript 中检查参数的数量并相应地调度:

但这对我来说似乎是个坏主意。

0 投票
1 回答
306 浏览

java - Micronaut:使用 Consul 依赖构建本机映像不起作用

我正在尝试构建 micronaut (v1.0.4) 应用程序的本机映像。

这个应用程序使用 Consul 作为服务发现。

我已经使用--features选项创建了应用程序:

该应用程序在我的本地机器上完美运行,但是当我尝试使用本机映像构建 docker 容器时,我收到错误消息:

如果我删除 Consul 集成,它可以正常工作。

我在官方文档中找不到任何有用的东西:

微服务作为 GraalVM 原生镜像

领事支持

有谁知道问题出在哪里?

0 投票
1 回答
485 浏览

graalvm - 如何设置 GraalVM 原生镜像的堆大小?

如何控制使用 GraalVM 创建的本机映像的堆大小native-image

本机映像是否评估通常的 JVM-Xmx参数?

0 投票
2 回答
5404 浏览

windows - 用于 Windows 的 GraalVM

我正在测试新的 RedHat 框架Quarkus。我正在尝试构建一个本机可执行文件,为此我需要下载GraalVM,但在GraalVM 的下载页面上有两个版本(社区和企业),仅适用于 Mac 和 Linux,但不适用于 Windows。

是否有替代下载 GraalVm for Windows 的方法?

0 投票
1 回答
625 浏览

java - Graal在java中嵌入javascript,如何从java调用列表/数组上的地图?可能吗?

我正在使用 Graal 将 javascript 作为访客语言运行,并且想知道是否有办法Array.map在主机 (Java) 对象或代理上使用 javascript 功能。演示 Kotlin 代码如下,但应该与 Java 代码足够接近。

使用ProxyArray对我来说看起来最有希望,但我仍然无法让它发挥作用。预计会支持此功能吗?

编辑:使用接受的答案代码有效,这是感兴趣的更改: