Java Mac OS无法运行.Jar文件

Java Mac OS无法运行.Jar文件,java,macos,jar,Java,Macos,Jar,所以我一直在写这个小代码,它可以工作-但我必须在整个计算机上输入;~用户$javamyproject并每次更改路径,所以我决定将其粘贴到一个.jar文件中,这样我只需双击即可运行它。我是运行macos的Intellij用户。我创建了这个文件,file/Project Structure/artifacts/+/myMain等,现在桌面上有一个.jar文件。当我在Intellij中运行jar时,或者使用 java-jar/Users/Me/Desktop/MyProject/out/artifac

所以我一直在写这个小代码,它可以工作-但我必须在整个计算机上输入;~用户$javamyproject并每次更改路径,所以我决定将其粘贴到一个.jar文件中,这样我只需双击即可运行它。我是运行macos的Intellij用户。我创建了这个文件,file/Project Structure/artifacts/+/myMain等,现在桌面上有一个.jar文件。当我在Intellij中运行jar时,或者使用

java-jar/Users/Me/Desktop/MyProject/out/artifacts/MyProject\u jar/MyProject.jar,工作正常

然而,当我:

使用java-jar MyProject.jar从终端运行它。我得到错误:无法访问jar文件MyProject.jar ^^已解决-使用chmod 755 MyProject.jar命令,请参阅注释以了解更多详细信息

或者用Jar启动器右键单击运行它,我得到Java Jar文件MyProject.Jar无法启动。检查控制台是否存在可能的错误消息。控制台中没有错误消息

在别人说之前,我有Java13,项目是在Java13上运行的——这是我的计算机的默认设置,并且自安装以来一直自动更新

如何启动此文件,以及有什么可以阻止它这样做?

在终端中,执行

ls-l MyProject.jar

您将看到如下内容:

-rw-r--r-- 1 youruser yourgroup 1024 Apr 24 15:41 MyProject.jar
-rw-r-r-部分是文件权限,其中r表示可读,w表示可写,x表示可执行,但正如您所看到的,没有。不用详细解释,使用chmod命令通过执行以下操作使文件可执行

chmod 755 MyProject.jar
之后,使用相同的ls命令,您将在权限字段中看到-rwxr-xr-x。该文件现在可由任何人执行,如果您在Finder中单击,则应启动该文件。

在terminal中,执行以下操作:

ls-l MyProject.jar

您将看到如下内容:

-rw-r--r-- 1 youruser yourgroup 1024 Apr 24 15:41 MyProject.jar
-rw-r-r-部分是文件权限,其中r表示可读,w表示可写,x表示可执行,但正如您所看到的,没有。不用详细解释,使用chmod命令通过执行以下操作使文件可执行

chmod 755 MyProject.jar

之后,使用相同的ls命令,您将在权限字段中看到-rwxr-xr-x。该文件现在可由任何人执行,如果您在Finder中单击,则应启动该文件。

如果您的程序没有GUI,但需要控制台输入,则应从终端运行该文件,而不是双击它。双击MyProject.jar文件时,实际上是通过jar启动器启动它。jar启动器将把文件传递给JVM。但是,由于您不是从终端启动它,JVM不知道要使用哪个终端,因此程序可能无法正确执行。

如果您的程序没有GUI,但需要控制台输入,则应该从终端运行它,而不是双击它。双击MyProject.jar文件时,实际上是通过jar启动器启动它。jar启动器将把文件传递给JVM。但是,由于您不是从终端启动它,JVM不知道使用哪个终端,因此程序可能无法正确执行。

jar文件的权限是什么?我认为jar文件必须是可执行的,才能启动它。对于命令行,请尝试指定路径,如java-jar./MyProject中所示。jar@Fubar太棒了,谢谢你的回复。指定路径有效。你说的权限是什么意思?还有任何关于如何使其可执行的线索吗?@Fubar这完全按照您所说的那样工作,非常感谢您-但是使用Jar Launcher运行时仍然会发生错误。知道为什么吗?另外,如果您确实弄明白了,请将该注释更改为答案,我将接受它。jar文件的权限是什么?我认为jar文件必须是可执行的,才能启动它。对于命令行,请尝试指定路径,如java-jar./MyProject中所示。jar@Fubar太棒了,谢谢你的回复。指定路径有效。你说的权限是什么意思?还有任何关于如何使其可执行的线索吗?@Fubar这完全按照您所说的那样工作,非常感谢您-但是使用Jar Launcher运行时仍然会发生错误。知道为什么吗?另外,如果你真的明白了,把这个评论改成一个答案,我会接受的