![如何使 .jar 文件可执行?](https://linux22.com/image/1041111/%E5%A6%82%E4%BD%95%E4%BD%BF%20.jar%20%E6%96%87%E4%BB%B6%E5%8F%AF%E6%89%A7%E8%A1%8C%EF%BC%9F.png)
我正在尝试在 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 如何工作的信息。
答案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 的其他文件系统也将起作用。