如何使 .jar 文件可执行?

如何使 .jar 文件可执行?

我正在尝试在 Ubuntu 下运行一个 jar 应用程序,因此我安装了 OpenJDK Java 7 Runtime,但是当我打开此应用程序时收到此消息:

文件“/home/aimad/Programms/jMerise/JMerise.jar”未标记为可执行文件。如果该文件是从不受信任的来源下载或复制的,则运行该文件可能会很危险。有关更多详细信息,请阅读有关可执行位的内容。

答案1

您可以随时通过执行以下操作来运行 jar 文件java -jar JMerise.jar

但是,为了使 jar 文件本身可执行,您需要设置可执行位,如消息提示的那样。chmod +x /home/aimad/Programms/jMerise/JMerise.jar将完成此操作。

之后您就可以./JMerise.jar运行它了。

man chmod将为您提供有关 chmod 如何工作的信息。

另请参阅:https://wiki.ubuntu.com/Security/ExecutableBit

答案2

右键单击该文件,单击属性,然后转到权限选项卡,并选中“允许将此文件作为程序执行”框。

在此处输入图片描述

答案3

由于您使用 运行 jar 应用程序,java -jar application.jar这意味着 java 在您的路径上。您需要做两件简单的事情:1) 在 jar 文件的第一行添加一个解释器(显然是#!java -jar),就像您对 shell 脚本所做的那样: echo '#!java -jar' > app.jar cat application.jar >> app.jar mv app.jar application.jar

如果你对 jar 文件的内容进行 cat 操作,你会看到它以例如: #!java -jar PK ^lN BOOT-INF/PK ..... ..... 2) 添加执行属性开始chmod +x application.jar ,现在你就可以通过 来“自行运行”它了./application.jar

答案4

如果从命令行运行 .jar 文件有效 ( java -jar myFile.jar),但在 GUI 中双击它无效,并且似乎sudo chmod +x myFile.jar成功了但您仍然无法通过双击打开,并且如果右键单击 .jar 文件 > 属性 > 权限 > “允许将文件作为程序执行”不起作用(即,复选框在您单击后立即切换回来),那么 .jar 文件可能位于 NTFS 文件系统上,它不允许每个文件执行权限。(例如,如果您双启动,并且在 Ubuntu 和 Windows 之间有一个共享的 NTFS 分区,则可能会遇到此问题)。

创建启动器(如@tusharkant15 所述)将起作用,因为在后台执行的是/usr/bin/java,而不是 .jar 文件本身。将 .jar 文件移动到非 NTFS 的其他文件系统也将起作用。

相关内容