如何将“jar”转换为Linux可执行文件?

时间:2017-06-08 05:32:45

标签: java linux jar executable-jar

我知道如何将“jar”转换为Windows可执行文件(.exe)。但我想知道如何将“jar”转换为Linux可执行文件(。?)。我搜索了谷歌,但没有得到我想要的确切答案,帮助做到这一点。

5 个答案:

答案 0 :(得分:3)

  

我想知道如何将“ jar”转换为Linux可执行文件(。?)。

Linux没有与Windows相同的可执行文件。在Linux中,我们有二进制文件和脚本。脚本与解释器一起运行; Ruby和Python等语言。二进制文件是已编译代码的文件,它们可以是库或整个程序。二进制文件和脚本都可以执行。

要使程序在Linux中可执行,请将其键入命令 线。

$ chmod +x myProgram

或者,您可以打开文件首选项并在 权限部分。

由于Linux没有.exe文件或类似文件,因此我们必须进行其他工作。 Linux和其他类似Unix的操作系统都有一个名为bash的外壳;在Linux和Mac中通常称为命令行或终端。我们想要创建一个可以作为整个程序运行的文件,而不必调用$ java -jar myProgram.jar。为了告诉bash启动文件的脚本环境,我们使用 hashbang 。这是文件的第一行,指示bash查找解释器以将文件的其余部分发送到该行。对于bash脚本,例如Windows上的“批处理脚本”,我们将以#!/bin/bash开始文件。 #!(hashbang)之后的路径告诉bash要寻找解释器。对于.jar,进行井号#!/usr/bin/java -jar,然后将.jar放在具有井号的文件上。这可以在Linux的所有终端上完成。

使用Java jar hashbang创建文件。

$ echo "#!/usr/bin/java -jar" > myBin

我们已经将hashbang作为字符串写到了新文件myBin中。

将jar写入文件。

$ cat my.jar >> myBin

>>将jar添加到接收文件。

这将创建一个带有bash hashbang和jar的文件。接下来将myBin设置为可执行文件,然后尝试运行该程序。

$ chmod +x myBin
$ ./myBin

答案 1 :(得分:2)

创建一个包含以下内容的sh包装文件并使其可执行:

#!/bin/bash

java -jar <your-jar>

(可选)添加一些vm参数。

也许有一些工具可以生成这样的文件,但是我认为手动做的很少。

答案 2 :(得分:0)

您始终可以通过执行java -jar myFile.jar来运行jar文件。

但是,要使jar文件本身可执行,您需要设置可执行位,如消息提示。 chmod +x /path/to/your/file/myFile.jar将完成此任务。

之后你可以./myFile.jar来运行它。

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

来源:AskUbuntu上的How can I make a .jar file executable?。回答Gary

答案 3 :(得分:0)

或者,您可以为程序创建一个.desktop文件。 https://wiki.archlinux.org/index.php/Desktop_entries

[Desktop Entry]

# The type as listed above
Type=Application

# The version of the desktop entry specification to which this file complies
Version=1.0

# The name of the application
Name=jMemorize

# A comment which can/will be used as a tooltip
Comment=Flash card based learning tool

# The path to the folder in which the executable is run
Path=/opt/jmemorise

# The executable of the application, possibly with arguments.
Exec=java -jar jmemorize.jar

# The name of the icon that will be used to display this entry
Icon=jmemorize

# Describes whether this application needs to be run in a terminal or not
Terminal=false

# Describes the categories in which this entry should be shown
Categories=Education;Languages;Java;

或者使用GUI退出器,然后将Exec和或Path指向您拥有.jar的位置。

克德 https://www.ghacks.net/2009/08/17/editing-your-kde-menus/

侏儒 https://www.howtoforge.com/tutorial/how-to-manage-main-menu-icons-in-gnome/

答案 4 :(得分:0)

尝试使用packr工具。它将帮助您从Java应用程序创建本地Linux可执行文件。