如何使.jar文件可执行?


11

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

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

Answers:


17

您始终可以通过运行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


7

右键单击文件,单击属性,然后转到“权限”选项卡,然后选中“允许以程序方式执行此文件”框。

在此处输入图片说明


如果我不能选中上方的框以“允许将文件作为程序执行”怎么办?我确实对其进行了检查,但是片刻之后,它会自动取消检查!
user961627 2014年

@ user961627您可能将.jar文件存储在不支持可执行位的分区上。有关更多详细信息,请参见无法使文件可执行
wjandrea

4

首先,您需要确保您的系统上具有合适的Java运行时环境。Ubuntu的官方仓库中有openjdk,可使用Oracle Java进行99.99%的战斗,安装类型为:

sudo apt-get install openjdk-7-jre

接下来创建一个名为java-jar-launcher.desktopin 的文件~/.local/share/applications,并将以下内容放入其中:

[Desktop Entry]
Type=Application
Name=Java Application Launcher
Icon=java
Exec=/usr/bin/java -jar %U
Categories=Application;Java
Terminal=False

接下来,在中添加以下行~/.local/share/applications/mimeapps.list

application/x-java-archive=java-jar-launcher.desktop;

现在您应该能够双击jar文件来启动它们,如果什么也没有发生,那么右键单击jar文件,选择属性,然后转到“打开方式”选项卡,在那里您应该看到“ Java应用程序启动器”,然后选择。

此方法是可预期的(IMHO),因为这样您就不会授予可能潜在危险的jar文件执行权限。此方法仅在图形环境中有效,并且需要用户手动双击文件。


2

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

如果您对jar文件的内容进行分类,您将看到它以ex。开头: #!java -jar PK ^lN BOOT-INF/PK ..... ..... 2)通过添加execute属性chmod +x application.jar 现在,您可以通过进行“自运行” ./application.jar


0

如果可以从命令行运行.jar文件(java -jar myFile.jar),但不能在GUI中双击它,并且sudo chmod +x myFile.jar看来可以成功,但是仍然无法通过双击打开,如果右键单击.jar,文件>属性>权限>“允许以程序方式执行文件”不起作用(即,复选框在您单击它后立即切换回去),则.jar文件可能位于NTFS文件系统上,该文件系统不允许执行以下操作:每个文件的基础上。(例如,如果您进行双重引导,并且在Ubuntu和Windows之间具有共享的NTFS分区,则可能会出现此问题)。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.