无法访问 jar 文件

无法访问 jar 文件

.jar我正在尝试在 Linux 机器(Ubuntu 12.04 服务器)启动时运行一个文件

只要我在脚本所在的目录中运行它,它就可以正常工作。如果我尝试在目录外运行它,我会收到错误“无法访问 jarfile settasks.jar”。我想我的其他脚本也遇到了同样的问题。

这可能是脚本错误还是权限错误?我完全不知所措,到目前为止还没有找到任何可以解决问题的方法。欢迎任何帮助。

答案1

右键单击该文件并选择Copy

现在,假设您正在使用在包含以下文件的目录中:

java -jar ./settask.jar

输入命令的开头java -jar,然后粘贴 - ++ Ctrl-你应该得到类似这样的结果,其中指定了文件的完整路径:ShiftV

java -jar file:///home/wilf/settask/settask.jar

取出file://并按下

java -jar /home/wilf/settask/settask.jar

如果有效,那么相同的命令也应该可以在您的脚本中起作用。

我希望这个答案是可以的,我想你问的是 bash 脚本。

注意:

./告诉它搜索当前所在目录的命令。

一开始就有,file://就表示不行。

答案2

Unable to access jarfile我尝试时遇到了启动 Spring Boot SysVinit 服务

事实证明,目录和内容的/srv/myapp/所有权有误。

运行sudo sh -c "chown -R myapp:myapp /srv/myapp/ && chmod -R u=rx,g=,o= /srv/myapp"赋予所有相关文件和目录正确的所有权和权限。

答案3

我也遇到了同样的问题。在终端中启动它时出现错误

Unable to access unicentaopos.jar

解决方案比问题更简单。

给已知启动器加上这行Path=/usr/bin/unicenta/ ,问题就解决了。
文件夹/unicenta当然是程序所在的文件夹了。

这样启动器看起来就像这样:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Name=Unicenta
Comment=Fires up Unicenta oPOS
Type=Application
Path=/usr/bin/unicenta/
Exec=/usr/bin/unicenta/start.sh
Icon=/usr/bin/unicenta/unicentaopos.ico    

要创建启动器,只需CTRL+ ALT+T打开终端。

类型cd Desktop(如果是荷兰语则为 Bureaublad)(区分大小写)

输入nano unicenta.desktop。复制并粘贴上述代码。

CTRL+O保存。按CTRL+关闭X。输入chmod +x unicenta.desktop

准备好。

答案4

我不确定你的问题是否与我的相似,但我说我的问题和解决方案可能会对某些人有所帮助:当我想运行 shell 脚本来运行 Java 应用程序时出现了这个错误:

"Unable to access jar file"

我的问题发生的原因是我在 Windows 中创建了 shell 脚本文件,因此该文件以 Windows 行尾 (CR) 创建,而 shell 脚本应该以 Unix 行尾 (LF) 结尾,因此解决方案是在 Notepadd++ 中将行尾更改为 Unix,然后我保存了文件,重新运行后问题就解决了。

相关内容