gpt4 book ai didi

java - 从 C 创建 JVM

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:36:06 25 4
gpt4 key购买 nike

如何从 C 启动 Java VM?编写 C 代码似乎是直截了当的——我一直在关注第 1 页上出现的代码。 84 Liang 的《Java Native Interface》。这是让我受阻的链接过程。梁的书在这方面已经过时 10 多年了,我在网上找不到任何解决这个目标(并且有效)的东西。

明确地说,我想要做的是启动一个标准的 Windows 程序(用 C 编写),然后启动 JVM 并调用 Java 类(我编写的)中的 main()。该程序不应依赖 jvm.dll 或 jvm.lib 的存在——用户不必安装 Java 即可运行该程序。如果不付出不合理的努力,这可能是不可能的。

开发环境为windows下的MinGW。当 .dll 位于单独的文件中时,我能够以程序运行的方式进行链接,但不是只有一个没有任何 .dll 或 .lib 的可执行文件。


事后看来,我现在可以看出这是一个愚蠢的问题,或者至少是一个没有经过深思熟虑的问题。这个故事的寓意是“JVM”不是单个可执行文件,甚至不是可执行文件加上一些 JAR 文件; JVM 依赖于大量相互依赖的独立存储文件。解开所有这些关系以便将它们放入单个文件(甚至两个文件)中将是一项艰巨的任务。感谢您的敲击。

最佳答案

那么,明确一点——您想在不需要 JVM 存在的情况下启动 JVM?你打算如何实现这一目标?除非您正在考虑编写自己的 JVM 实现(我认为这属于“不合理的工作量”类别),否则安装 JVM 是一个合理的要求。假设您可以生成一个 Java 进程并包含适当的命令行参数(类路径、要运行的类等)。

关于java - 从 C 创建 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7674491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com