标签: graalvm

为什么truffleruby需要C扩展?

目前的状态truffleruby:

TruffleRuby正在快速发展,但目前可能尚未准备好尝试运行完整的Ruby应用程序.缺少对OpenSSL和Nokogiri等关键C扩展的支持.

为什么truffleruby需要C扩展?它建立在构建于JVM之上的GraalVM之上,它实际上是JRuby的一个分支:

TruffleRuby是JRuby的一个分支,它将它与Rubinius项目的代码结合在一起,并且还包含来自Ruby,MRI标准实现的代码.

难道他们不能使用JRuby世界宝石而不是依赖于他们的C变种吗?

编辑链接到github上的问题

ruby jruby truffleruby graalvm

6
推荐指数
1
解决办法
327
查看次数

GraalVM和Jvm-Hotspot之间的区别

有人可以解释GraalVM和Jvm-Hotspot之间的区别,以及GraalVM与OpenJDK的HotSpot有何关系。

java jvm-hotspot graalvm

6
推荐指数
3
解决办法
1172
查看次数

适用于Windows的GraalVM

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

有其他替代方法可下载Windows版GraalVm吗?

windows graalvm quarkus

6
推荐指数
2
解决办法
3487
查看次数

使用多阶段 Docker 构建在容器中构建本机可执行文件时内存不足

我正在尝试将quarkus-quickstarts/kafka-quickstart/项目(来自 Quarkus 入门资源)构建为具有多阶段 Docker 构建的容器中的本机可执行文件。在“quarkus-maven-plugin:0.21.2:native-image”阶段出现内存不足之前,构建会卡住很长一段时间。

从解决方案中,我使用 docker compose 启动 Kafka 代理run docker-compose up,然后添加下一个多阶段 Dockerfile:

## Stage 1 : build with maven builder image with native capabilities
FROM quay.io/quarkus/centos-quarkus-maven:19.2.0 AS build
COPY src /usr/src/app/src
COPY pom.xml /usr/src/app
USER root
RUN chown -R quarkus /usr/src/app
USER quarkus
RUN mvn -f /usr/src/app/pom.xml -Pnative clean package

## Stage 2 : create the docker final image
FROM registry.access.redhat.com/ubi8/ubi-minimal
WORKDIR /work/
COPY --from=build /usr/src/app/target/*-runner /work/application
RUN chmod 775 /work
EXPOSE 8080
CMD …
Run Code Online (Sandbox Code Playgroud)

graalvm quarkus

6
推荐指数
1
解决办法
8693
查看次数

Java Nashorn 的替代品

我不是在问替代品是什么。但是,现在(2019 年 12 月)关于如何处理 Java Nashorn 弃用的“官方”路线是什么?你是不是应该等一下。graalvm 是成为 JDK 的一部分,还是 Javascript 支持所需的部分将成为 JDK 的一部分?我是否需要为 graalvm 企业付费(就像我以前通过 Nashorn 在一个封闭源代码应用程序中那样使用 Javascript)是 Oracle 采取的方式吗?

java nashorn graalvm

6
推荐指数
0
解决办法
718
查看次数

Windows 上 JavaFX 的 Gluon 客户端 Maven 插件无法编译?

我一直在 Windows 机器上为我的一个项目试验 Gluon 的客户端 Maven 插件。我决定在这里尝试一下他们的“hello world”示例之一我遵循了如何配置机器的所有步骤。

但是,我遇到了一些错误。由于某种原因,编译总是失败并给出错误“无法运行程序“cl””。有谁知道如何解决这个问题?

我正在“VS 2019 的 x64 本机工具命令提示符”窗口中运行 client:build 命令。

日志如下:

java.io.IOException: Cannot run program "cl" (in directory "C:\Users\Evan\Documents\client-samples\Maven\HelloFXML\target\client\x86_64-windows\gvm\hellofxml"): CreateProcess error=2, The system cannot find the file specified
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1128)
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1071)
[INFO] ------------------------------------------------------------------------
        at com.gluonhq.substrate.util.ProcessRunner.setupProcess(ProcessRunner.java:336)
[INFO] BUILD FAILURE
        at com.gluonhq.substrate.util.ProcessRunner.runProcess(ProcessRunner.java:194)
[INFO] ------------------------------------------------------------------------
        at com.gluonhq.substrate.target.AbstractTargetConfiguration.compileAdditionalSources(AbstractTargetConfiguration.java:330)
[INFO] Total time:  2.860 s
        at com.gluonhq.substrate.target.AbstractTargetConfiguration.compile(AbstractTargetConfiguration.java:130)
[INFO] Finished at: 2020-06-02T17:37:39-04:00
        at com.gluonhq.substrate.SubstrateDispatcher.nativeCompile(SubstrateDispatcher.java:414)
[INFO] ------------------------------------------------------------------------
        at com.gluonhq.NativeCompileMojo.execute(NativeCompileMojo.java:54)
[ERROR] Failed to execute goal com.gluonhq:client-maven-plugin:0.1.26:compile (default-cli) on project hellofxml: …
Run Code Online (Sandbox Code Playgroud)

java javafx maven graalvm visual-studio-2019

6
推荐指数
1
解决办法
2273
查看次数

运行spring boot原生应用程序,无法加载资源文件

我正在尝试将 Spring Boot 应用程序编译为本机应用程序并使用 docker 运行它。我正在使用 spring-graalvm-native 版本 0.8.5 和 Spring Boot 版本 2.4.1。我正在尝试使用 spring-boot-maven-plugin 使用以下命令构建 docker 容器:

mvn spring-boot:build-image
Run Code Online (Sandbox Code Playgroud)

在代码中,我想从资源中读取文件,并尝试像这样加载它:

@Value("classpath:my.json")
Resource resourceFile;
Run Code Online (Sandbox Code Playgroud)

编译步骤工作正常,但问题是当我运行 docker 映像时 my.json 文件未加载,无法找到它。

我运行native-image-agent并生成 META-INF 文件夹,其中 resources-config.json 文件添加了 my.json 模式。

我还尝试配置 spring-boot-maven-plugin 并添加:

-H:IncludeResources='.*/my.json$'
Run Code Online (Sandbox Code Playgroud)

但是这些配置都不起作用,你能帮我找出问题所在吗?

此致

项目结构:

在此输入图像描述

spring spring-boot graalvm graalvm-native-image

6
推荐指数
1
解决办法
1324
查看次数

如何在google cloudbuild上构建quarkus本机镜像

有谁知道如何在 cloudbuild 上构建 quarkus 原生镜像?我使用以下命令来执行此操作:

- name: maven:3-jdk-11
    entrypoint: mvn
    args: ["package", "-Dmaven.test.skip=true", "-Pnative", "-Dquarkus.native.container-build=true", "-Dquarkus.container-image.build=true"]
Run Code Online (Sandbox Code Playgroud)

在本地一切正常,但当我尝试在 Google Cloud 上执行此操作时,会抛出错误:

[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:1.12.2.Final:build (default) on project fishki: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR]     [error]: Build step io.quarkus.deployment.pkg.steps.NativeImageBuildStep#build threw an exception: java.lang.IllegalStateException: No container runtime was found to run the native image builder
[ERROR]     at io.quarkus.deployment.pkg.steps.NativeImageBuildContainerRunner.detectContainerRuntime(NativeImageBuildContainerRunner.java:114)
Run Code Online (Sandbox Code Playgroud)

我的想法是尝试提供容器运行时来运行本机映像生成器,但我不知道该怎么做。

我将不胜感激任何帮助,谢谢!

编辑

我使用以下 cloudbuild.yaml

steps:
  - name: maven:3-jdk-11
    entrypoint: mvn
    args: ["quarkus:add-extension", …
Run Code Online (Sandbox Code Playgroud)

maven graalvm google-cloud-build quarkus cloudbuild.yaml

6
推荐指数
1
解决办法
1972
查看次数

将 Java 编译为 WebAssembly

我正在尝试将 Java 编译为 WebAssembly。这可能吗?我最初的方法是采用这篇博文中描述的示例

博文中描述的方法如下:

  1. 安装GraalVM并将本机映像和 LLVM 工具链添加到安装中
  2. 使用GraalVM的javac编译一个简单的程序(生成类文件)
  3. 使用 GraalVM 的本机映像程序将类文件处理为本机二进制文件(带有使用 llvm 进行预处理的选项)
  4. 使用 LLVM IR 位代码文件编译为 WASM 二进制文件。

我进行到步骤 4,但之后我无法将 LLVM IR 位代码编译为 wasm。

我从 LLVM 收到以下错误:

LLVM ERROR: unsupported GC: compressed-pointer
Run Code Online (Sandbox Code Playgroud)

有没有人尝试过这个并成功了?

java llvm webassembly graalvm graalvm-native-image

6
推荐指数
0
解决办法
2852
查看次数

Spring React 和 quarkus React 之间的性能差异

低内存和高性能本机容器是未来。使用传统框架的 Java 很难像 golang/rust 那样实现较低级别的占用空间和高性能。

但最近 Java 的创新结合了 graalvm 和响应式范式,显示出非常令人印象深刻的结果。

因此,问题在于了解 Spring boot 与 Quarkus 的反应式引擎有何不同。我们是否有任何理由应该采用 quarkus Native/jvm 或者等待 Spring Native 变得稳定并期望相同的性能优势?有人可以根据实验和事实来谈谈吗?

cloud graalvm spring-webflux quarkus

6
推荐指数
1
解决办法
3101
查看次数