我试图在Ubuntu下运行jar应用程序,所以我安装了OpenJDK Java 7 Runtime,但是当我打开此应用程序时,收到此消息:
文件“ /home/aimad/Programms/jMerise/JMerise.jar”未标记为可执行文件。如果从不受信任的来源下载或复制了此文件,则可能会造成危险。有关更多详细信息,请阅读有关可执行位的信息。
我试图在Ubuntu下运行jar应用程序,所以我安装了OpenJDK Java 7 Runtime,但是当我打开此应用程序时,收到此消息:
文件“ /home/aimad/Programms/jMerise/JMerise.jar”未标记为可执行文件。如果从不受信任的来源下载或复制了此文件,则可能会造成危险。有关更多详细信息,请阅读有关可执行位的信息。
Answers:
您始终可以通过运行jar文件java -jar JMerise.jar
。
但是,要使jar文件本身可执行,需要设置可执行位,如消息提示所示。chmod +x /home/aimad/Programms/jMerise/JMerise.jar
将完成此任务。
之后,您可以./JMerise.jar
运行它。
man chmod
将为您提供有关chmod的工作方式的信息。
右键单击文件,单击属性,然后转到“权限”选项卡,然后选中“允许以程序方式执行此文件”框。
首先,您需要确保您的系统上具有合适的Java运行时环境。Ubuntu的官方仓库中有openjdk,可使用Oracle Java进行99.99%的战斗,安装类型为:
sudo apt-get install openjdk-7-jre
接下来创建一个名为java-jar-launcher.desktop
in 的文件~/.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文件执行权限。此方法仅在图形环境中有效,并且需要用户手动双击文件。
由于您使用来运行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
。
如果可以从命令行运行.jar文件(java -jar myFile.jar
),但不能在GUI中双击它,并且sudo chmod +x myFile.jar
看来可以成功,但是仍然无法通过双击打开,如果右键单击.jar,文件>属性>权限>“允许以程序方式执行文件”不起作用(即,复选框在您单击它后立即切换回去),则.jar文件可能位于NTFS文件系统上,该文件系统不允许执行以下操作:每个文件的基础上。(例如,如果您进行双重引导,并且在Ubuntu和Windows之间具有共享的NTFS分区,则可能会出现此问题)。
创建启动程序(如@ tusharkant15所述)将起作用,因为您正在执行的是后台程序/usr/bin/java
,而不是.jar文件本身。将.jar文件移动到不是NTFS的其他文件系统也可以。