无法在Linux上的路径中运行jar可执行文件

时间:2019-10-15 09:42:49

标签: java linux jar archlinux

我按照repository上的说明安装了clojure-lsp,并将罐子放在/usr/bin中。

我的问题是,我在运行Error: Unable to access jarfile clojure-lsp时收到错误clojure-lsp,但是当我使用sudo运行该错误时似乎可行。

这是我对可执行文件的权限:

-rwxr-xr-x 1 root root 20822380 Oct 15 11:05 /usr/bin/clojure-lsp

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

10分钟前,我在arch Linux机器上安装了clojure-lsp jar。它以root sudo -s的身份安装,并且在我第一次运行它之前忘记从根环境退出。有效!之后,我认识到自己的失败并退出了root用户。然后,我再次运行它,并以“无法访问/tmp/lsp.out权限被拒绝”失败。显而易见的解决方案是该可执行文件已在/ tmp中创建了具有根权限的文件。我删除了此文件,然后重新启动,一切顺利。

这与您的观察结果不同,但也许可以为您提供一个线索。我不知道您是第一次开始安装的条件,也不知道您的操作系统设置,因此很难提供帮助。

也许您已经启用了内核安全性(如apparmor,...)。 ??

clojure-lsp既是脚本又是jar文件。内部启动Java。此Java在路径$ 0 / closure-lsp(在特殊情况下为/ usr / bin / closure-lsp)中打开jar文件。我将以某种方式解释所报告的错误,即Java无法访问该文件。也许Java无法访问/ usr / bin。但这很奇怪。

您是否从bash /其他shell运行closure-lsp。您是否在路径中安装了Java? (java -version应该可以工作)