linux 无法在Ubuntu中访问jarfile,即使有完全权限?

qlckcl4x  于 2023-10-16  发布在  Linux
关注(0)|答案(3)|浏览(186)

我是Linux/Unix的新手,我在让shell脚本运行可执行的jar文件时遇到了麻烦。这是我的shell脚本www.example.com的内容start.sh:

java -Xmx4096 -Xms4096 -jar "/home/user/Documents/Mserver/fserver.jar"

我得到的错误是

Error: Unable to access jarfile /home/user/Documents/Mserver/fserver.jar

我所尝试的:
我试着运行命令

chmod u+x /home/user/Documents/Mserver/start.sh

chmod u+x /home/user/Documents/Mserver/fserver.jar

chmod -R 777 /home/user/Documents/Mserver

授予给予我的所有文件读、写和执行权限
此外,我最初只是在shell脚本中使用jar文件的名称,而不是它所在的整个路径。在被告知添加路径可能会解决问题后,我添加了它,但没有任何变化。
当我在网站上看到另一个类似的问题时,我看到有人在使用pearl脚本时遇到了同样的问题,这是因为配置文件的问题,但我不知道这是否与我有关。
我是一个新手,我不知道下一步该做什么,所以如果你注意到我这样做有什么问题,有任何建议,或者认为我遗漏了任何重要的细节,请告诉我。
编辑:运行命令时

ls -l /home/user/Documents/Mserver/fserver.jar

我得到的结果是:

-rwxrwxrwx 1 user user 4883911 Dec 12 17:15 /home/user/Documents/Mserver/fserver.jar

当我将文件更改为

path="$HOME/Documents/Mserver/fserver.jar"
java -Xmx4096 -Xms4096 -jar $path

我仍然得到错误:

Error: Unable to access jarfile /home/user/Documents/Mserver/fserver.jar

另外,我忘记注意的另一件事是,当我导航到jar文件所在的目录并运行命令时,

java -Xmx4096 -Xms4096 -jar fserver.jar

有时灵

ulmd4ohb

ulmd4ohb1#

在shell脚本中添加以下行:

path="$HOME/Documents/Mserver/fserver.jar"
java -Xmx4096 -Xms4096 -jar $path
6tqwzwtp

6tqwzwtp2#

尝试使用脚本中使用的绝对路径启动文件,但使用您知道的其他方法。(因此,导航到您的目录并运行您知道有效的命令:

java -Xmx4096 -Xms4096 -jar fserver.jar

而是使用脚本中使用的绝对路径。在这种情况下:

$HOME/Documents/Mserver/fserver.jar

)如果这不起作用,那么参考很可能是坏的。

g6ll5ycj

g6ll5ycj3#

在我的情况下,原因“错误:无法访问jarfile”,当从.sh脚本启动Java应用程序时,是Windows换行符\r(或CR)。它似乎是作为jarfile参数的一部分传递给Java解释器的,而jar文件在文件系统中找不到,因为它的名称不匹配。
要调试此行为,请将cd(更改目录)命令添加到脚本中,运行它并观察输出,例如:

cd /opt/app
java -jar test.jar

将给予如下的错误文本(注意/opt/app末尾的\r):

./test.sh: line 1: cd: $'/opt/app\r': No such file or directory
Error: Unable to access jarfile test.jar

我正在使用Rocky 8 Linux,但这也适用于其他发行版。

相关问题