Java 跨平台可执行问题(避免重复)

Java 跨平台可执行问题(避免重复),java,executable,executable-jar,Java,Executable,Executable Jar,我知道windows用户更喜欢.exe(windowsexe可剪切文件),mac用户更喜欢.app(AppleScriptappapplication),Java使用.jar(JavaARchive)。但是,是否存在任何合理的跨平台可执行文件,因为要执行JAR,您需要CMD或终端(至少在Mac的情况下)通过以下方式运行文件: java -jar %FILEPATH% 但是还有其他可执行文件可以使用吗 我应该只有一台Mac和一台Windows下载吗 我能做一个可以双击的罐子吗 我已经尽我所能在库

我知道windows用户更喜欢.exe(windowsexe可剪切文件),mac用户更喜欢.app(AppleScriptappapplication),Java使用.jarJavaARchive)。但是,是否存在任何合理的跨平台可执行文件,因为要执行JAR,您需要CMD或终端(至少在Mac的情况下)通过以下方式运行文件:

java -jar %FILEPATH%
但是还有其他可执行文件可以使用吗

我应该只有一台Mac和一台Windows下载吗

我能做一个可以双击的罐子吗

我已经尽我所能在库存过剩的情况下进行了搜索,但没有简单合理的答案


希望这能帮助比我更多的人:)

可执行JAR文件是最可移植的跨平台可执行文件。Macintosh应用程序文件为格式,与不兼容。Windows可执行文件格式与Mac或Linux()不兼容。基本上,在Windows、Mac和Linux上可靠运行的唯一格式是Jar文件

从Java教程中

如果将应用程序捆绑在JAR文件中,则需要某种方法来指示JAR文件中的哪个类是应用程序的入口点。您可以在清单中的
Main类
标题中提供此信息,其一般形式如下:

Main-Class: classname

为了能够通过双击启动jar文件,.jar扩展名需要与Windows下的Java运行时可执行文件
javaw.exe
相关联。这与使用Microsoft Word打开例如
.docx
文件时使用的机制相同。 据我所知,JRE安装会自动添加这种关联

为了在双击Jar后告诉Java从Jar启动哪个类,Jar中需要一个
META-INF/MANIFEST.MF
,如@Elliott Frisch所述

顺便说一下:Mac应用程序实际上是文件夹,Mac OS X将其显示为一个整体(右键单击Mac应用程序,然后单击
Show Package Contents
进入该文件夹)。所以这个想法与JAR非常相似,尽管JAR是真实的文件而不是文件夹——当然它们的格式完全不同


因此,Jar是所有平台(安装了JRE)上的“可执行文件”格式。

您能解释一下与可执行文件相关的“避免重复”意味着什么吗?@AlexeiLevenkov还有很多其他问题与此类似,但所有答案都是.Jar、.app或.exe谢谢,我现在就来试试!我一直在添加清单文件,但我不知道它在一个名为META-INF的文件夹中!我知道mac应用程序是如何工作的,我以前使用过内置的AppleScript编辑器。感谢我以前使用过清单,甚至尝试过这个,但没有成功。感谢你的帮助,我终于可以工作了。我现在正在使用swing!