问题标签 [substratevm]

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 投票
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 回答
35 浏览

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

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

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

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 回答
1302 浏览

maven-plugin - 使用 native-image-maven-plugin 构建 GraalVM 错误

我正在尝试使用native-image-maven-plugin来构建 Java 项目,但出现以下错误:

0 投票
1 回答
414 浏览

java - 原生映像何时以及为何需要 SubstrateVM 框架?

我阅读了有关GraalVMSubstrateVM框架的信息。我了解该native-image命令可用于从 Java 源文件创建本机应用程序,如下所示:

这将创建一个本机二进制文件hello,根据这个问题,它由 SubstrateVM 框架提供支持,该框架提供......

...其他东西(运行时)需要在没有 JVM 的情况下实际运行提前编译的 Java 字节码。

我不清楚:

  • 何时以及为何需要 SubstrateVM 框架?仅在本机构建时需要还是在运行时也需要?二进制hello文件是由纯目标机器字节码组成,还是仍然存在 Java 字节码和嵌入的成熟虚拟机,即 SubstrateVM?
  • 与通常的C 程序hello相比,哪些开销需要运行本机映像?Hello World!
0 投票
1 回答
1148 浏览

jvm - 为什么 GraalVM (SubstrateVM) 本机映像在运行时使用的内存比相应的 JIT 构建少得多?

我想知道为什么 Java 应用程序的 GraalVM (SubstrateVM) 本机映像使它运行在运行时行为将消耗更少内存的地方,但如果正常运行,它将消耗更多内存?

为什么不能让正常的 JIT 同样消耗少量的内存呢?

0 投票
1 回答
161 浏览

blockchain - 如何以某种方式运行 Substrate,以便立即验证交易以供开发人员使用?

为了开发目的,我如何在假验证模式下运行Substrate(有没有类似于--devgeth中立即挖掘交易的东西)?

0 投票
1 回答
410 浏览

javafx - 使用 GraalVM 的 Windows Javafx 本机编译:错误 LNK2001

我曾尝试编译我的小 Javafx 程序,该程序仅在 Windows 10 平台上使用 gradle client-gradle-plugin 版本 0.1.27 更改 Windows 壁纸。

  1. gradle build : 生成 JAR 的标准编译,成功。
  2. gradle nativeBuild,编译成功。毕业典礼
  3. nativeBuild,链接步骤失败并出现错误:LNK2001

你有什么想法,这是一个已知的问题吗?

客户端调试0.log

客户端调试0.log3

0 投票
0 回答
1129 浏览

ios - GraalVM native-image 将 Java 库编译成 iOS 框架/库

GraalVM native-image 允许我们将 Java 库转换为本地可执行文件。它还允许编译到提到的共享库https://www.graalvm.org/docs/Native-Image/user/README

原生镜像可以构建为默认的独立可执行文件,也可以通过将 --shared 传递给 native-image 来构建为共享库。为了使图像有用,它需要至少有一个入口点方法。

我找到的最接近的线程是这个https://github.com/oracle/graal/issues/373,但仍然找不到任何适用于 iOS 的指南,这可能吗?我可以遵循任何指南吗?

0 投票
1 回答
156 浏览

java - 与 Java SE 兼容的 GraalVM 原生镜像(Substrate VM - Darwin)

SubstrateVM 允许将 JAVA 应用程序编译成 macOS ( Darwin ) 本机可执行文件。我找不到任何地方记录 SubstrateVM 实现了什么样的 Java (SE) 包。当我想将我的应用程序编译成 macOS (iOS) 本机可执行文件时,当我要决定可以使用哪种 Java 库时,这是我最大的担忧,因为一些开源/第三方 Java 库可能正在使用SubtracteVM 中可能找不到的某些 Java 包(sun 或 Java Swing)。我曾经使用类似 robovm 之类的 AOT,我知道有很多 Java 包没有在其中实现。

到目前为止,我能找到的有用限制是这个。但它仍然没有提到它是(或不)实现的 Java SE 的哪个部分。谁能指点我在哪里可以找到这些信息?