问题标签 [graalvm-native-image]

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

spring-boot - springboot fat jar 的 graalvm 本机映像抛出 NoSuchMethodException xxx。() 在运行时

我设法为我的 springboot fat jar 构建了 native-image,但是java.lang.NoSuchMethodException: com.my.passgenerator.PassGeneratorApplication.<init>()当我运行它时它会抛出异常:“”。我试图添加一个默认构造和一个空的 init() 方法,但都失败了。如何克服此异常并运行此本机映像?

以下是完整的日志:

0 投票
1 回答
584 浏览

postgresql - Quarkus 原生镜像:postgresql 连接被拒绝

我创建了一个 quarkus 应用程序,可以访问 localhost 上的 postgresql 数据库。创建本机映像后,我尝试使用以下命令运行应用程序:

docker run -i --rm -p 8080:8080 quarkusimage

如果我尝试使用邮递员的方法,我会得到以下结果:

addEmployee Hibernate: select nextval ('quarkus.hibernate_sequence') 2020-06-18 20: 43: 38,214 WARN [io.agr.pool] (Agroal_20041415421) Datasource '': Connection to localhost: 5432 denied. 检查主机名和端口是否正确以及 postmaster 是否接受 TCP/IP 连接。

如果我尝试使用

docker run --net = "host" -i --rm -p 8080:8080 quarkusimage

应用程序访问本地主机上的数据库,但是如果我尝试使用邮递员调用它就无法访问该服务。

我究竟做错了什么?

谢谢

0 投票
1 回答
1182 浏览

java - Micronaut 数据本机图像:不存在 [io.micronaut.data.operations.PrimaryRepositoryOperations] 类型的 bean

我正在使用 Micronaut、Micronaut Data、JPA、Postgres 和 GraalVM 开发一个新示例,遵循 https://github.com/rmondejar/micronaut-postgres-example

此示例是使用具有以下功能的 Micronaut Launch 2.0.0.RC1 创建的:

没有本机图像,它可以完美运行,测试通过:

生成本机映像并执行它看起来不错:

但是,一旦到达存储库,它总是会失败:

转到本机时似乎是配置错误的问题,但是由于我遵循指南并使用生成的应用程序,因此不确定缺少什么。

0 投票
0 回答
661 浏览

spring-boot - 带有 h2 驱动程序的 spring-boot fat jar 无法构建 graalvm 本机映像

我无法将带有 h2 驱动程序的 spring-boot fat jar 转换为 graalvm 本机映像,以下是异常消息:

我确实首先使用代理运行它以获取配置文件并在 native-image-maven-plugin 配置中包含“-H:ConfigurationResourceRoots=nativeimage”。

我的构建环境中使用的模块版本:

这可以通过配置或其他方式解决吗?

编辑@ 2020/07/01 -- spring-boot-starter-parent:2.4.0-SNAPSHOT spring-
graalvm -native:0.8.0-SNAPSHOT 和


编辑@ 2020/07/02 -
当我尝试在构建时初始化“无意初始化”类时出现以下错误。

这会以不同的调用路径重复 6 次。

0 投票
1 回答
856 浏览

hikaricp - 使用 hikari 数据源构建 micronaut 原生镜像

面临运行打包在本机映像中的 micronaut 应用程序的问题。

micronaut-data-hibernate-jpa我使用并基于文档创建了简单的演示应用程序,我需要添加一些数据库连接池。我选择了 hikari 并添加了这样的依赖micronaut-jdbc-hikari

我使用 maven 作为构建工具并添加插件来构建 native-imagenative-image-maven-plugin

native-image.properties

当我使用 jvm 运行应用程序时,一切正常。但是当我尝试运行打包为本机图像的相同应用程序时,我得到了这样的错误

更新/解决方案

基于@Airy 的回答,我在native-image.properties 中添加了反射配置。就我而言,它看起来像这样

另一个解决方案是更改 hikari 依赖项的范围以编译并将错过的字段/类添加到提示注释中,如下所示

整个例子你可以在这里找到

0 投票
2 回答
950 浏览

java - Jackson 在编译为本机映像的 Micronaut 应用程序中没有找到 POJO 的属性

我用 Micronaut 2.0.0 创建了一个简单的应用程序:它是使用 Micronaut 应用程序生成器在https://micronaut.io/launch/生成的,然后我添加了以下内容:

然后我使用./mvnw clean package.

当我用 启动它时java -jar target/micronaut-minimal-1.0.jar,它成功启动。它正确响应:

现在我构建一个原生镜像:

然后我运行它:

它开始正常。

现在同样的请求产生了一个错误:

我尝试添加@JsonPropertymessage字段或getMessage()方法(带或不带value属性),但无济于事。

我认为这与反射可能在本机图像中不可用的事实有关。但是我该如何解决这个问题呢?

我正在使用 GraalVM CE 20.1.0(构建 11.0.7+10-jvmci-20.1-b02)来运行和构建 jar 和图像。

0 投票
1 回答
178 浏览

date - Quarkus GraalVM native image DateTimeFormatter and Localization

I tried to use localization in java to print date with local style. I already make a similar functionality with numbers and currencies but I failed to apply the same behavior to date.

As I learning when I posted this topics few days ago, GraalVM Quarkus Locale in native mode , use localization in native mode need to use create an "@AutomaticFeature".

This trick works for numbers and currencies :

But it's not works with DateTimeFormatter :

In development mode all is ok but in native mode, locale is ignore. Style is always le same, month name isn't translate. I was looking for a solution on google but i didn't find anything so I ask on StackOverflow.

I am at your disposal if needed.

Regards, Stéphane.

0 投票
1 回答
725 浏览

java - 使用来自 GraalVM 的 native-image 的 Java 调用 C 库

我有一个简单的项目:https ://github.com/MarcoLunar/native-pid-test 它所做的就是从 C 库调用 getpid。项目很简单:

从 IDE 启动时一切正常:

当尝试使用来自 GraalVM 的本机映像进行构建时,出现此错误:

我已经尝试了很多次,许多不同的解决方案......但现在我没有更多要检查的了。我正在寻求帮助以修复该项目。我认为这是可能的,因为在某些配置下,我遇到了与 https://github.com/oracle/graal/issues/2261 相同的错误……有人修复了它……但没有写出解决方案: (

0 投票
0 回答
298 浏览

java - GraalVM 构建的原生镜像不支持 Unsafe.staticFieldOffset() 方法

我在一个名为的文件中有以下程序Test.java

它只是获取一个Unsafe实例,然后调用它的staticFieldOffset()方法。

我用 编译它javac Test.java,它输出一堆关于Unsafe.

然后我运行生成的类文件java Test并获得以下内容:

所以它有效。

现在,我用native-image --no-server --no-fallback Test app.

好的,最后,我用./app. 结果如下:

所以似乎在native模式下,它不支持Unsafe.staticFieldOffset()方法。

有什么方法可以让它工作,还是应该在 GraalVM 代码中解决?这似乎阻碍了 Netty 在本机图像中的使用,请参阅https://github.com/netty/netty/issues/10051作为示例。

我正在使用 GraalVM 20.1:

使用代理收集PS配置没有帮助。也就是说,当我添加-agentlib:native-image-agent=config-output-dir=target/configjava命令以收集有关反射的运行时数据和添加内容然后添加-H:ConfigurationFileDirectories=target/confignative-image命令时,生成的本机程序的行为相同。

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 的指南,这可能吗?我可以遵循任何指南吗?