运行jar文件和exe文件有什么区别?

9

如果你有一个小程序,你可以运行jar文件,它会正常工作。但是,如果你将jar文件转换为exe,你仍然需要Java来运行你的exe文件,那么它们之间有什么区别,为什么有些人要将jar转换为exe呢?

如果您的应用程序只需要运行在Java环境中,那么使用jar文件就足够了。但是,如果您希望用户能够轻松地运行您的应用程序,而无需安装Java,那么将jar文件转换为exe文件可能是有用的。这样一来,用户只需要双击exe文件即可运行应用程序,而无需担心是否已经安装了Java。


3
请解释“将jar转换为exe”。您所询问的确切方法是哪一个? - Boris the Spider
3
这段话的意思是:其实这个 exe 文件提供一个常见的方法,让很多用户更容易地将它集成到操作系统中(例如提供图标、创建快捷方式等),但本质上,这个 exe 只是一个包装器,用来启动带有 JVM 的 jar 文件。 - MadProgrammer
5个回答

12

EXE文件是一个可执行程序,它启动本地Java来执行捆绑的类。

您可能知道,在计算机上可以将某些文件扩展名与本地程序关联起来。例如,将.doc文件与您的文字处理器相关联。

同样,.jar文件可以与Java相关联,以便Java可以执行它们。如果jar文件中包含了所有必要的类并有适当的清单指向启动类,则该jar文件被视为“独立的”。

因此,通过将.jar与Java相关联,在您的环境中点击它将启动具有给定jar文件的Java。

EXE文件不需要该关联。它使用自己的启动程序自行查找Java。

下一步是实际上将JRE捆绑到EXE中,这样您甚至不需要用户安装Java作为前提条件。但那是一个不同的过程。


1
人们通常使用Java可执行包装器有两个原因 - 1. 简化没有JVM的环境下的部署,2. 确保用于开发应用程序的确切Java运行时被用于运行JAR。然而,这种做法并不是非常普遍。

1

exe将要做的就是启动一个JVM来运行你的应用程序,类似于这样:"java -jar app.jar"。


0

Java归档文件或JAR是已编译的Java字节码和资源的归档文件,可以在Java虚拟机上运行。".exe" 是Windows可执行代码的扩展名,主要用于安装程序或不需要安装的程序。我认为你们所谓的“人员”正在谈论安装程序。


0

Exe文件是可在Microsoft操作系统环境中执行的可执行文件。Jar文件是Java类文件的容器,包括与项目相关的其他资源。只有在Java运行时环境下才能执行Jar文件。JavaTM存档(JAR)文件格式使您可以将多个文件打包成单个存档文件。

从java文件编译的.class文件不能直接启动。这就是为什么需要在在Windows环境中运行之前将其转换为exe的原因。用批处理文件启动Java程序的常规方法不方便。因此,为了避免这种困难,我们需要将jar文件转换为exe文件。

此外,将其转换为exe.是使程序能够通过简单双击程序而不必通过IDE或JVM编译运行的方式运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接