- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些 Java 应用程序和一些使用 C# 实现的 UWP 应用程序的客户,这些应用程序通过 Windows 应用商店等分发,他们想要使用我的应用程序的某些部分。这些部分非常独立于操作系统,只解析一些特殊的二进制文件格式,应用一些使用 YAML 文件和东西配置的业务逻辑。没有网络,GUI,只有一些文件访问等。
我们目前使用 IKVM使 C# 可以使用感兴趣的代码,但已经遇到了不同的问题。有些是 supporting .NET Core , 有些与 native 有关toolchain在 Release等。虽然现在在应用一些变通办法后一切似乎都有效,但我已经在寻找 IKVM 的替代品了。
我目前使用 IKVM 的唯一一件事就是使用 ikvmc 创建我的代码的 DLL。 ,然后可以在 UWP 项目中引用它。编译器总结如下:
The ikvmc tool converts Java bytecode to .NET dll's and exe's.
这就是我想到支持创建 GraalVM 的 native Windows 镜像的地方。其他人似乎已经为 Windows 和 according to the docs 构建了 native 二进制文件,GraalVM 能够使用“--shared”创建共享库。根据我的理解,IKVM 在 .NET 中实现了一个 JVM,并根据需要和可能映射事物。这听起来很像“Substrate VM”在处理原生图像时所做的,不是吗?
This executable includes the application, the libraries, the JDK and does not run on the Java VM, but includes necessary components like memory management and thread scheduling from a different virtual machine, called “Substrate VM”. Substrate VM is the name for the runtime components (like the deoptimizer, garbage collector, thread scheduling etc.).
https://www.graalvm.org/docs/reference-manual/native-image/
那么,DLL 形式的 native 镜像是否有可能取代当前由 ikvmc
创建的 DLL?有没有人已经尝试过并且有任何经验?有没有人已经尝试创建一个 native DLL 并在其他一些 native Windows 应用程序中使用它?根据我的理解,UWP“仅”应用了可能能够再次解决的额外限制。或者由于某些原因这种方法是完全不可能的?
感谢大家的参与!
最佳答案
我对 IKVM 项目不是很熟悉,所以这个答案主要是关于一般问题:
Can you create a native DLL/shared library and consume that in some other native Windows app?
应该是可以的。您可以将 Java 代码编译成共享库。入口点用 @CEntrypoint
注释标记。
然后您可以使用生成的共享库和头文件从 native 应用程序使用您的库。
这种方式例如 GraalVM 发行版默认使用 GraalVM JIT 编译器:
这里有一个页面描述了如何通过 JNI 使用来自 Java 的那些:https://www.graalvm.org/reference-manual/native-image/ImplementingNativeMethodsInJavaWithSVM/
这可能与您在 C# 应用程序中使用共享库的方式非常相似。
关于java - GraalVM 生成的原生镜像可以替代 IKVM 生成的 DLL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58595406/
是否可以在 reflection-config.json 中添加一个包?像这样的东西: [ { "name" : "org.apache.tinkerpop.shaded.kryo.ser
GraalVM 有许多令人惊讶的功能。但是我还没有看到但很想看到的一件事是能够在浏览器中运行 GraalVM 应用程序。像这样的来源 (Top 10 Things To Do With GraalVM
在 GraalVM 架构上实现编程语言有哪些(架构)差异 - 特别是使用 Sulong 的 Graal、Truffle 和 LLVM 之间? 我计划在 GraalVM 架构上重新实现现有的静态类型编程
如何控制使用 GraalVM native-image 创建的原生图像的堆大小? native 图像是否评估通常的 JVM -Xmx 参数? 最佳答案 您可以使用 -Xmx{n} 命令行参数指定堆大小
GitHub 上的 Substrate VM 文档(例如 CONFIGURE.md 提到了多个 -H:... 选项,例如 -H:ReflectionConfigurationResources 或 -
是否有任何方法可以将 javascript 源代码转换为某种预编译的声明,可以以某种方式存储并加载到 org.graalvm.polyglot.Context 而不是将其作为原始字符串进行评估?类似于
我有一个小 Java 程序。我使用 Graal 的 native-image 构建了一个二进制文件(即 GraalVM AOT 又名 SubstrateVM)。 我的程序可以使用 Java 运行时或本
我正在尝试使用 GraalVM 和 native 图像构建 native 应用程序。开始构建过程时发生错误。类路径中似乎缺少 cl.exe。就像 GraalVM 网站上提到的那样,我已经安装了“GRM
我知道这些技术都是相关的,但有人可以解释一下每种技术的用途以及它们如何组合在一起吗? 最佳答案 简单化: 格拉尔 - Java 字节码编译器。可以及时(作为 JVM 的一部分)或提前使用。 Subst
我为使用动态编程找出最长公共(public)子序列的方法创建了一个基准: @Benchmark def longestCommonSubsequenceDP(): String = { v
我有一个在 java-8-openjdk-amd64 上运行的 java 应用程序,它评估 java 脚本。现在我安装了 GraalVM Community Edition graalvm-ce-19
我正在尝试编译示例 Quarkus使用 GraalVM 和 Maven 项目到 native 镜像。这是我的 Quarkus 服务的代码: package gk.testquarkus; import
我正在 Graal 上编写一个应用程序,它将能够执行不同语言的小脚本。 我正在尝试为我用来将 Context.eval() 调用(类型:Value)的结果转换/处理为 Java 对象的类编写一些单元测
我正在尝试使用 Graalvm 构建 native 图像,但每次我尝试使用 mvn gluonfx:build 构建它时都会出现错误,项目中有数据库连接,例如:H2 DB。 正常运行即可 没有任何数据
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 2 年前。
我正在尝试使用 Micronaut 应用程序作为发现的 Graalvm native 镜像 here. 但是当我运行 ./gradlew buildNativeLambda 时我有这些异常(excep
我正在使用 GraalVM 执行 JavaScript 文件,但在异常处理方面遇到问题。我的 JS 代码会回调 Java,如果这些 Java 方法之一抛出异常,那么我就会丢失原因链。 public c
我正在尝试在项目中使用 GraalVM 来添加简单的脚本功能。我使用 Maven 进行依赖项管理来加载 Graal 的基本依赖项。这是我的 pom.xml: 4.0.0 cx.matthe
嗨,我一直在尝试对我的 javafx 项目进行 native 构建,但当我尝试运行它时出现异常。我怀疑在编译的二进制文件中找不到 .fxml 文件 Exception in thread "main"
环顾四周,皆是对手! 云时代的掉队者,由于Java启动的高延时、对资源的高占用、导致在Serverless及FaaS架构下力不从心,在越来越流行的边缘计算、IoT方向上也是难觅踪影;
我是一名优秀的程序员,十分优秀!