仅当我不在命令行中包含其“.jar”扩展名时,Java 应用程序才会运行,为什么会这样?

仅当我不在命令行中包含其“.jar”扩展名时,Java 应用程序才会运行,为什么会这样?

我已获得一个 jar 文件来像这样运行它:

java -jar app-versions-name.jar -settings...(以及一些其他参数)

但是,它不起作用,提示找不到文件。但是当我从命令行删除 jar 扩展名时,它就可以正常工作了:

java -jar app-versions-name -settings...(以及一些其他参数)

为什么会这样?

答案1

您的文件没有扩展名,只是简单地称为app-versions-name

因此java -jar app-versions-name它可以工作,因为它运行名为的文件app-versions-name,而java -jar app-versions-name.jar说找不到该文件,因为app-versions-name.jar不存在。

如今,扩展名已经没有什么特别之处,它们只是我们采用的一种文件命名惯例,以便快速识别文件类型。删除它们通常不会造成任何影响,因为程序处理的是文件内容,而不是名称。

相关内容