问题标签 [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.
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 进行反射?
谢谢您的帮助。
groovy - 如何将 picocli groovy-grape 脚本转换为本机独立应用程序?
我用 picocli 制作了我的第一个 groovy CLI 应用程序。现在,我希望它可以在客户端机器上不安装任何 JVM 的情况下使用,也许可以使用 GraalVM。这是一个开源项目: https ://github.com/kchaitanya863/db2csv
aws-lambda - Graal 原生镜像调用 https 抛出引发:java.security.InvalidAlgorithmParameterException:trustAnchors 参数必须为非空
我正在生成一个进行 https 调用的 Graal 本机图像。问题是它在尝试拨打电话时抛出异常:
痕迹:
以前我必须手动向 reflect.json 添加一堆类,直到我不知道如何继续:
Github 上有一个项目:https ://github.com/codependent/graal-app
要测试它运行:
export AWS_DEFAULT_REGION=eu-central-1
docker build . -t graap-app
./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 参数必须为非空
ceylon - 如何为 Ceylon 生成 GraalVM 本机映像?
我尝试--static -jar
与 Ceylon 编译的 fat jar 一起使用:
(default.jar
是一个胖罐子生产的ceylon fat-jar
。)
但我有UnsupportedFeatureException
一句话java.lang.Class.getConstantPool()
是不支持的。
ceylon 程序只是一个简单的 hello world(打印出一个字符串)。
Ceylon 和 GraalVM 版本:
完整的错误日志:
java - 检查 Java 库与 GraalVM 的兼容性
我正在研究 GraalVM,我想尝试使用我在项目中使用的一些库。有一些工具可以检查整个代码并给我一个关于与 GraalVM 原生映像不兼容的代码的报告?
在此先感谢,戴维德
javascript - JSR-223:如何将可变参数主机函数绑定到 ScriptEngine
我正在尝试通过ScriptEngine
Java VM下的JSR-223运行Javascript来调用用户提供的代码并将其传递给“promise-style”回调:即一个不接受任何参数的函数(成功完成但没有值);单个参数(null
用于成功完成,没有值或错误对象);或两个参数(null
成功完成,一个值)。
我为此使用 GaalVM,并将我的回调放入 Javascript 绑定对象中。像这样的东西:
问题是我不知道要放置什么作为"callback"
绑定:
我试过简单的:
在这种情况下,使用两个参数调用回调可以正常工作,但是使用单个参数(或没有参数)我得到错误:
我试过得到一个Object
像这样的数组:
这导致 GraalVM 向我扔了这个:
我目前正在考虑在 Javascript 中进行手动多调度 - 基本上定义多个回调主机函数,然后在 Javascript 中检查参数的数量并相应地调度:
但这对我来说似乎是个坏主意。
java - Micronaut:使用 Consul 依赖构建本机映像不起作用
我正在尝试构建 micronaut (v1.0.4) 应用程序的本机映像。
这个应用程序使用 Consul 作为服务发现。
我已经使用--features
选项创建了应用程序:
该应用程序在我的本地机器上完美运行,但是当我尝试使用本机映像构建 docker 容器时,我收到错误消息:
如果我删除 Consul 集成,它可以正常工作。
我在官方文档中找不到任何有用的东西:
有谁知道问题出在哪里?
graalvm - 如何设置 GraalVM 原生镜像的堆大小?
如何控制使用 GraalVM 创建的本机映像的堆大小native-image
?
本机映像是否评估通常的 JVM-Xmx
参数?
windows - 用于 Windows 的 GraalVM
我正在测试新的 RedHat 框架Quarkus。我正在尝试构建一个本机可执行文件,为此我需要下载GraalVM,但在GraalVM 的下载页面上有两个版本(社区和企业),仅适用于 Mac 和 Linux,但不适用于 Windows。
是否有替代下载 GraalVm for Windows 的方法?
java - Graal在java中嵌入javascript,如何从java调用列表/数组上的地图?可能吗?
我正在使用 Graal 将 javascript 作为访客语言运行,并且想知道是否有办法Array.map
在主机 (Java) 对象或代理上使用 javascript 功能。演示 Kotlin 代码如下,但应该与 Java 代码足够接近。
使用ProxyArray
对我来说看起来最有希望,但我仍然无法让它发挥作用。预计会支持此功能吗?
编辑:使用接受的答案代码有效,这是感兴趣的更改: