我想要实现的是在任何 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
我相信流行的发行版都有可以帮你解决这个问题的软件包,尽管我最近自己没有用过它。