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

问题描述 投票:0回答:7

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

java linux jar executable-jar
7个回答
30
投票

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

Linux 不像 Windows 那样具有可执行文件。在 Linux 中,我们有二进制文件和脚本。脚本由解释器运行; Ruby 和 Python 等语言。二进制文件是编译代码的文件,它们可以是库或整个程序。二进制文件和脚本都可以执行。

要使程序在 Linux 中可执行,请在命令中输入以下内容 线。

$ chmod +x myProgram

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

由于 Linux 没有

.exe
文件或类似文件,我们必须解决其他问题。 Linux 和其他类 Unix 操作系统都有一个名为 bash 的 shell;对于 Linux 和 Mac,通常称为命令行或终端。我们想要创建一个可以作为整个程序运行的文件,而不必调用
$ java -jar myProgram.jar
。为了告诉 bash 为文件启动脚本环境,我们使用 hashbang。这是文件的第一行,指示 bash 寻找解释器以将文件的其余部分发送到。对于 bash 脚本,例如 Windows 上的批处理脚本,我们将以
#!/bin/bash
开头该文件。
#!
(hashbang)之后的路径告诉 bash 要寻找解释器。对于
.jar
,请创建 hashbang
#!/usr/bin/java -jar
,然后将
.jar
添加到带有 hashbang 的文件中。这一切都可以从 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

7
投票

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

#!/bin/bash

java -jar <your-jar>

可以选择添加一些虚拟机参数。

也许有一些工具可以生成这样的文件,但我认为手动完成它并不费力。


2
投票

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


1
投票

您始终可以通过执行

java -jar myFile.jar
来运行 jar 文件。

但是,要使 jar 文件本身可执行,您需要设置可执行位,如消息提示。

chmod +x /path/to/your/file/myFile.jar
将实现这一目标。

之后您可以执行

./myFile.jar
来运行它。

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

来源:AskUbuntu 上的如何使 .jar 文件可执行?加里

回答

0
投票

虽然制作 shell 脚本是可行的,但在大多数情况下它似乎有点矫枉过正。为什么不直接使用别名并将其放入您的

.bashrc
.bash_aliases
文件中呢?像这样:

alias whatever='java -jar /path/to/whatever.jar'

(由于我的解决方案在这里没有作为答案,我的“为什么”是一个有点真实的问题:是否存在一些隐藏的危险或我遗漏的功能?或者更多的是遵守最严格的解释的问题OP的问题?)


0
投票

在这种情况下,更合适和准确的可能是创建一个桌面配置文件。


0
投票

答案很晚,但也许有人会需要它!

要在 Linux 上使 jar 文件“可执行”,您需要打开文件属性,然后在常规部分 --> 打开方式 --> 单击更改并在应用程序首选项顺序下添加“java -jar”,并在权限中设置程序可执行文件部分。

© www.soinside.com 2019 - 2024. All rights reserved.