在不支持';我没有JVM

在不支持';我没有JVM,jvm,java,Jvm,Java,我已经为我的软件(一个Java swing应用程序)创建了一个.exe文件。但是.exe文件仅在安装了JVM的计算机上运行。我想在没有安装JVM的计算机上运行它。如何实现这一点?您需要一个JVM来运行Java。这是绕不开的 没有安装JRE的用户必须安装一个。不要将其与JDK混淆。他们不需要所有的开发工具,只有运行时引擎。我不知道您使用了什么应用程序将jar包装为exe,但我建议您使用这是一个包装器,它可以在尝试执行应用程序之前检查用户是否已经安装了JRE/JDK,如果没有安装,它将显示一条消息并

我已经为我的软件(一个Java swing应用程序)创建了一个.exe文件。但是.exe文件仅在安装了JVM的计算机上运行。我想在没有安装JVM的计算机上运行它。如何实现这一点?

您需要一个JVM来运行Java。这是绕不开的


没有安装JRE的用户必须安装一个。不要将其与JDK混淆。他们不需要所有的开发工具,只有运行时引擎。

我不知道您使用了什么应用程序将jar包装为exe,但我建议您使用这是一个包装器,它可以在尝试执行应用程序之前检查用户是否已经安装了JRE/JDK,如果没有安装,它将显示一条消息并打开浏览器下载java

  • 用于帮助确保用户拥有运行应用程序所需的最低Java版本
  • 启动应用程序。使用

  • 这应该适用于Java可用的系统(即不仅仅是Windows)。

    如果您真的想这样做,请看一看。但是,请记住,AWT/Swing支架和其他许多东西几乎都是死的

    即使在语言特性方面你不会损失任何东西,但在你急转直下之前,停下来想想这是否是你真正需要的东西。绝大多数用户都使用Java,通过使用GCJ编译成机器代码,您将错过所有潜在的热点优化,在许多情况下会造成更大的占地面积,并失去跨平台兼容性


    分发一个jar文件,然后指导用户下载JDK是完全可以接受的,如果他们还没有下载的话,除非你正在做一些非常专业的事情,否则这就是我在这种情况下的建议。

    无论如何,你都需要在应用程序中附带JVM。那么,为什么不将JRE包括在安装包中呢


    另一个选择是创建一个安装程序,如果没有安装JRE,它将自动从Internet下载JRE。例如,您可能想查看本指南(但如果不熟悉NSIS,请先阅读它)

    “我终于创建了我的软件的exe文件(在java Swigs中)。但是exe文件仅在安装了JVM的计算机上运行…”您可以在Mac上运行此“exe”。&*用Java的尼克斯盒子?!?顺便说一句,这些词是“Java”和“Swing”,注意大写字母。您可以将JRE JVM运行时捆绑到应用程序安装程序中(Launch4J、NSIS、InnoSetup、IzPack可以帮助您实现这一点),如果安装程序设计不选择可选的JRE下载支持,则可以从捆绑的JRE JVM运行时文件夹中运行应用程序。除此之外,如果客户端可以使用Internet,您可以使用Java Web Start方法,前提是您的应用程序托管服务器已准备就绪。某些应用程序会随应用程序分发JRE(例如SoapUI)。这使得下载量大了很多倍,并且特定于体系结构,但可以确保它可以开箱即用。在这种情况下,您可能希望提供两个或更多的下载,有些带有JRE,有些没有。对于windows,还有一些.exe jar包装程序将把您的jar嵌入本机二进制文件中,检查已安装的JVM,如果没有,则提示用户从Sun(oracle)下载并安装。有点像.Net应用程序如何在不存在的情况下提示用户安装.Net库。我已经很久没有研究过这些了,所以我没有一个好的推荐,或者这已经不受欢迎了。我只记得在swing的早期,这种行为是一种常见的特性请求。