问题标签 [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 回答
410 浏览

graalvm - 无法生成本机映像:未设置 GRAALVM_HOME

无法生成本机映像:未设置 GRAALVM_HOME (MacOsx)

我已经设置了类路径,运行 set 命令给了我 GRAALVM_HOME=/Library/Java/JavaVirtualMachines/graalvm-ce-19.0.0/contents/home。java -version 指向 OpenJDK GraalVM CE 19.0.0 ...

我期待成功构建原生 quarkus 图像

0 投票
1 回答
249 浏览

graalvm - GraalVM 目录是否已关闭?

试图通过 gu 命令安装 R,但得到了这个:

$ gu安装R

下载:来自 www.graalvm.org 的组件目录

错误:从https://www.graalvm.org/component-catalog/graal-updater-component-catalog.properties下载组件目录时出错:主机已关闭(连接失败)。

请检查您的连接和代理设置。如果您的机器位于代理后面,则必须适当设置环境变量(http_proxy、https_proxy...)。

--

这个问题是在他们这边(听起来像)还是我需要配置的东西?

我能够更早地安装本机图像。

谢谢,

0 投票
1 回答
1292 浏览

graalvm - 是否可以在 Java“GraalVM”程序中运行 Python 程序?

从 GraalVM 示例中,他们有这样的代码来运行一行 Python 代码:

是的,这在 Java 程序中运行良好。

我还可以使用“graalpython”程序从命令行运行 Python 程序。


我的问题是如何从上面提到的 Java 示例中运行 python 程序?

我尝试使用“文件:”参数,但这没有用,或者我做错了什么。

例如,这不起作用:

这行代码给了我:

原始内部错误:java.lang.RuntimeException:未实现

所以,也许这回答了我的问题,但我必须相信你可以从 GRAAL 程序运行 python 脚本,就像你可以运行一行代码一样。因此,这个帖子。

--

是否支持使用 graal“eval”从 Java 程序中运行 python 程序?如果是这样,我将非常感谢一个使用示例。

非常感谢。

0 投票
1 回答
35 浏览

graalvm - Substrate VM 生成的二进制文件许可问题

SubstrateVM 在 GPLv2 下获得许可,并且使用 nativeimage 编译的二进制文件附带部分 substractevm,例如内存和线程管理。这是否意味着二进制文件也在 GPLv2 下?

不是substratevm静态链接到二进制文件吗?

0 投票
2 回答
777 浏览

haskell - 如何在 GraalVM 上运行 Haskell?

我试图让 Haskell 在GraalVM上运行,但我无法包含运行时环境。在 Rust 中,只需为 Rust 标准库指定正确的路径,如这里所述。

Haskell 是否有同样简单的解决方案?甚至有可能吗?

0 投票
1 回答
2412 浏览

java - GraalVM - 在类路径上找不到语言和多语言实现

我正在尝试在项目中使用 GraalVM 来添加简单的脚本功能。我正在使用 Maven 进行依赖管理来加载 Graal 的基本依赖项。这是我的 pom.xml:

这是我调用 Graal 的代码:

虽然据我所知这应该可以工作,但在运行它时,它会输出以下错误:

现在,当然,正如错误所说,建议的解决方案是在类路径中包含 truffle-api.jar,但是由于它是在插件环境中运行的,因此让该插件的最终用户必须设置并不理想手动设置他们的类路径。truffle-api Maven 依赖项中的阴影似乎不起作用,这通常是解决此类问题的方法。

已经有一些现有的提议的解决方案。我遇到的第一个问题是在这个答案中,但正如您在我的 pom.xml 中看到的那样,所有这些依赖项都已包含在内。

我看到的另一个解决方案(以及问题)在这个 GitHub 问题中进行了概述,但是虽然我可以确认修改后的 META-INF/truffle/language 文件在我的最终 jar 中,但它似乎没有工作. 这是 jar 中输出的文件:

所以,我现在有点不知所措。有没有人对如何解决这个问题有任何想法?

0 投票
1 回答
1881 浏览

java - 如何在 Eclipse 中使用 GraalVM (SubstrateVM) 将 Java 编译为 Native

我有一个研究项目(在 Java 8 中实现)将在 Eclipse 中包含几个类、几个主要功能和超过 10000 行代码。当输入不小的时候,程序会耗尽内存。

如果编译为本机应用程序,我想看看它是否会使用更少的堆栈内存。

我发现没有办法在 Eclipse 中执行此操作。

我做了
$GRAALVM_HOME/bin/javac /home/appu/Downloads/2019/June/20/HelloWorld.java
。我有一个工作二进制文件。

我试过
/home/appu/Downloads/Apps/GraalVM/2019-06-20/graalvm-ee-19.0.2/bin/native-image /home/appu/eclipse-nimi/NimishaGraalEE19/bin/nimi/decimate/Decimate.class
Main entry point class '/home/appu/eclipse-nimi/NimishaGraalEE19/bin/nimi/decimate/Decimate.class' not found.

我试过
/home/appu/Downloads/Apps/GraalVM/2019-06-20/graalvm-ee-19.0.2/bin/native-image /home/appu/eclipse-nimi/NimishaGraalEE19/bin/*
Main entry point class '/home/appu/eclipse-nimi/NimishaGraalEE19/bin/nimi' not found.

经典

编译成“HelloWorld.class”

它给出了一个可执行的“helloworld”,它是可执行的(application/x-executable)。

我可以从 Eclipse 获得相同的吗?对于多类文件,我可以从命令行获得相同的结果吗?

当我将上面的代码更改为

并添加另一个类

他们编译正确,但我得到

我想要的是一个可执行文件(在我的例子中是一个 Gnu/Linux 可执行文件)文件,它可以用作本机可执行文件。

我更喜欢 Eclipse 的解决方案,但欢迎使用命令行、Netbeans、VS Code ……或任何其他技术。


回应 BoriS 的回答:

几个小时前我尝试制作一个 jar,并制作了一个名为 Main.js 的文件。那没起效。

当我运行可执行 (application/x-executable) 类型的 Main 时,我得到了

0 投票
1 回答
1313 浏览

java - 使用 Micronaut 和 GraalVM 创建 AWS Lambda 函数的问题

我正在尝试使用 Micronaut、GraalVM 和 Docker 在 Java 中创建和部署 AWS Lambda 函数。我正在按照本教程使用 GraalVM 运行时创建 AWS lambda。

我已经使用micronautcommand创建了 java 项目$ mn create-app my-app --features aws-api-gateway-graal。然后在不更改代码或配置文件的情况下,尝试使用 GraalVM 原生镜像构建 Docker 镜像。在构建 graalvm 本机映像时的 docker build 步骤中,我收到以下警告:

警告:中止独立映像构建。在映像运行时 com.amazonaws.serverless.proxy.model.ContainerConfig 初始化或重新初始化的类的映像堆中不允许有任何实例。尝试使用 --initialize-at-build-time=com.amazonaws.serverless.proxy.model.ContainerConfig 将此类标记为构建时初始化

警告:使用 -H:+ReportExceptionStackTraces 打印底层异常的堆栈跟踪*

警告:图像“服务器”是一个后备图像,需要 JDK 才能执行(使用 --no-fallback 来抑制后备图像生成)。

构建后,我将带有引导文件的 docker 映像导出到 function.zip 文件,因为它是在教程中编写的。然后我将 function.zip 文件上传到我创建的 AWS lambda 函数,当我尝试测试函数时,我得到了这个错误:

START RequestId:888854d7-0e0e-42b4-a138-9a003c3455e1 版本:$LATEST
错误:没有 bin/java 并且没有环境变量 JAVA_HOME
END RequestId:888854d7-0e0e-42b4-a138-9a003c3455e1
REPORT RequestId:888854d7-0e0e-428 9a003c3455e1 持续时间:415.09 毫秒计费持续时间:500 毫秒内存大小:128 MB 使用的最大内存:16 MB
RequestId:888854d7-0e0e-42b4-a138-9a003c3455e1 错误:运行时退出错误:退出状态 1
Runtime.ExitError

我不知道出了什么问题。我还没有找到任何解决这个问题的方法。

0 投票
1 回答
1654 浏览

java - Swing 应用程序的 Graal native-image:在图像堆中检测到一个已启动的线程

当我尝试创建本机图像时,native-image --no-fallback我得到了这个:

错误:在图像堆中检测到一个已启动的线程。在图像生成器中运行的线程不再在图像运行时运行。该对象可能是由类初始化程序创建的,并且可以从静态字段访问。默认情况下,所有类初始化都在原生镜像构建期间完成。您可以使用选项 -H:ClassInitialization= 手动将类初始化延迟到镜像运行时。或者您可以编写自己的初始化方法并从主入口点显式调用它们。

详细信息: Trace: object sun.java2d.opengl.OGLRenderQueue field sun.java2d.opengl.OGLRenderQueue.theInstance

0 投票
1 回答
888 浏览

java - 无法加载 JVMCI 共享库:libcrypt.so.1:无法打开共享对象文件:没有这样的文件或目录

当我尝试执行涉及我已安装的 Java 虚拟机的任务时(在我的情况下为 GraalVM 19 CE),抛出错误:

VM 初始化时出错无法加载 JVMCI 共享库:libcrypt.so.1:无法打开共享对象文件:没有这样的文件或目录

注意:我使用的是 linux SO(fedora 30 工作站)