我只是想知道为什么如果我输入命令提示符filename.jar
它会弹出一条消息(找不到主类)但是如果我输入java -jar filename.jar
,jar文件就可以了。有人可以向我解释为什么会发生这种情况吗?
答案 0 :(得分:0)
jar文件不是可执行文件。 java -jar
是运行它的正确方法。
答案 1 :(得分:0)
Java是一种基于解释器的语言,你需要将jar文件作为解释器的输入来执行。
如果我错了,请纠正我。PS:Downvoters或编辑请提及原因。其中一半的人只是在编辑时重复了句子。
答案 2 :(得分:0)
.jar
个文件至少可以在Windows和Mac OS上执行。 (没有 native 代码,但它们与将用于打开它们的程序有关联,在本例中为 Java )
因此,如果您双击这些操作系统上的jar文件,它们将在内部调用java,就像您使用jar文件作为参数键入java -jar
一样。
但是,如果您的计算机上安装了多个Java版本,则双击可能会打开使用不同Java版本的jar文件,而不是在命令行上键入java -jar
。“ p>
这完全取决于您的操作系统,因此您需要在问题中指明。
<。> .jar文件与.zip文件具有完全相同的格式(因为它们是具有不同扩展名的.zip文件)。在jar / zip文件中有一个名为META-INF / MANIFEST.MF的文件,该文件指定在双击或键入java -jar
时应调用哪个类。
如果您可以显示该文件中的内容,则会有所帮助。如果安装了unzip
命令,则可以使用以下命令显示该文件的内容:
unzip -p
文件名 .jar META-INF/MANIFEST.MF
如果没有解压缩,您可以提取整个jar文件并查看META-INF / MANIFEST.MF:
jar xf
文件名 .jar
META-INF/MANIFEST.MF
文件中的内容是什么?答案 3 :(得分:0)
为了清楚起见,Java是一种需要Java虚拟机运行的编程语言,在创建项目后创建一个类并在其中键入一些代码,然后在编译编译器时创建.class文件和那么你需要一个Java虚拟机来运行编译器创建的.class文件。 jar文件不是可执行文件,它以pkzip格式压缩,因此每个jar文件都包含一个MANIFEST文件,在该文件中指定mainClass以使球运行(运行程序)。要运行jar,请使用java -jar <jarfile>
命令