TruffleRuby正在快速发展,但目前可能尚未准备好尝试运行完整的Ruby应用程序.缺少对OpenSSL和Nokogiri等关键C扩展的支持.
为什么truffleruby需要C扩展?它建立在构建于JVM之上的GraalVM之上,它实际上是JRuby的一个分支:
TruffleRuby是JRuby的一个分支,它将它与Rubinius项目的代码结合在一起,并且还包含来自Ruby,MRI标准实现的代码.
难道他们不能使用JRuby世界宝石而不是依赖于他们的C变种吗?
有人可以解释GraalVM和Jvm-Hotspot之间的区别,以及GraalVM与OpenJDK的HotSpot有何关系。
我正在测试新的RedHat框架Quarkus。我正在尝试构建本机可执行文件,为此,我需要下载GraalVM,但是在GraalVM的下载页面上有两个版本(社区版和企业版),仅在Mac和Linux上可用,而不适用于Windows。
有其他替代方法可下载Windows版GraalVm吗?
我正在尝试将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) 我不是在问替代品是什么。但是,现在(2019 年 12 月)关于如何处理 Java Nashorn 弃用的“官方”路线是什么?你是不是应该等一下。graalvm 是成为 JDK 的一部分,还是 Javascript 支持所需的部分将成为 JDK 的一部分?我是否需要为 graalvm 企业付费(就像我以前通过 Nashorn 在一个封闭源代码应用程序中那样使用 Javascript)是 Oracle 采取的方式吗?
我一直在 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) 我正在尝试将 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)
但是这些配置都不起作用,你能帮我找出问题所在吗?
此致
项目结构:
有谁知道如何在 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) 我正在尝试将 Java 编译为 WebAssembly。这可能吗?我最初的方法是采用这篇博文中描述的示例
博文中描述的方法如下:
我进行到步骤 4,但之后我无法将 LLVM IR 位代码编译为 wasm。
我从 LLVM 收到以下错误:
LLVM ERROR: unsupported GC: compressed-pointer
Run Code Online (Sandbox Code Playgroud)
有没有人尝试过这个并成功了?
低内存和高性能本机容器是未来。使用传统框架的 Java 很难像 golang/rust 那样实现较低级别的占用空间和高性能。
但最近 Java 的创新结合了 graalvm 和响应式范式,显示出非常令人印象深刻的结果。
因此,问题在于了解 Spring boot 与 Quarkus 的反应式引擎有何不同。我们是否有任何理由应该采用 quarkus Native/jvm 或者等待 Spring Native 变得稳定并期望相同的性能优势?有人可以根据实验和事实来谈谈吗?
graalvm ×10
java ×4
quarkus ×4
maven ×2
cloud ×1
javafx ×1
jruby ×1
jvm-hotspot ×1
llvm ×1
nashorn ×1
ruby ×1
spring ×1
spring-boot ×1
truffleruby ×1
webassembly ×1
windows ×1