在 Linux 中双击执行 jar

在 Linux 中双击执行 jar

我想要实现的是在任何 Linux 系统(Ubuntu、Fedora 等……尽可能多地覆盖)上运行 Java 程序,只需双击文件即可,就像在 Windows 上一样。
我创建了一个 .sh 文件(并授予了执行权限),内容如下:

#!/bin/sh
java    -Xmx512M\
    -Djava.library.path="."\
    -DclientAppDataPath="Application Data"\
    -jar Client.jar\
    Phoenix.client.ClientMain\
    1>output.txt 2>error.txt

如果我尝试使用 Ubuntu 终端执行此文件,它会正常工作。但是,当我尝试双击该文件并选择“运行”或在“终端中运行”时,我看不到任何内容。显然,shell 会立即打开并关闭。我该如何避免这种情况?

编辑:
我注意到 error.txt 包含:

blah/blah/blah/Client Launcher.sh: 2: blah/blah/blah/Client Launcher.sh: java: 未找到

我已经提取了 jdk1.xxtar.gz,并使用 .bashrc 文件手动将 java home 添加到 PATH。这可能是原因吗?我该如何修复?

答案1

有一个很好的解决方案,可以使 Java jar 文件被视为可执行文件而不需要 shell 脚本,尽管设置起来有点麻烦:

https://wiki.archlinux.org/index.php/Binfmt_misc_for_Java

我相信流行的发行版都有可以帮你解决这个问题的软件包,尽管我最近自己没有用过它。

相关内容