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

Unable to run jar executable in path on linux

我按照repository上的说明安装了clojure-lsp,并将jar放在/usr/bin.

我的问题是当我 运行 clojure-lsp 时出现错误 Error: Unable to access jarfile clojure-lsp,但是当我 运行 使用 sudo 时它似乎有效。

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

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

我做错了什么?

我 10 分钟前在我的 arch linux 盒子上安装了 clojure-lsp jar。以 root sudo -s 身份安装它,并且在我第一次使用 运行 之前忘记退出 root 环境。有效!在那之后,我意识到我的失败并退出了 root。然后我再次 运行 它并失败 "can not access /tmp/lsp.out permission denied"。显而易见的解决方案是可执行文件在 /tmp 中创建了一个具有 root 权限的文件。我删除了这个文件并重新启动,一切顺利。

这与您的观察结果不同,但也许它能为您提供线索。我不知道你第一次开始安装的条件,我也不知道你的 OS 设置,所以很难提供帮助。

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

clojure-lsp 既是脚本又是 jar 文件。它在内部开始 java。此 java 在路径 $0/closure-lsp 中打开一个 jar 文件(/usr/bin/closure-lsp 在你的特殊情况下)。我会以 Java 无法访问该文件的方式来解释报告的错误。也许 java 无法访问 /usr/bin。但那将是非常 st运行ge.

您是否 运行 来自 bash / 其他 shell 的 closure-lsp。您是否安装了 java 并且在您的 PATH 中? (java -version 应该有效)