【问题标题】:Environment variables interfering with jar干扰 jar 的环境变量
【发布时间】:2011-02-07 18:00:05
【问题描述】:

我有一个 jar 文件,它在许多机器上工作。然而,我们只是要求一个新的 unix 用户安装它,它的行为不一样......想知道它是否可能与某些环境有关。变量。

基本思路是:

WorkingUser@box$ java -jar install.jar -h
[output help instructions]

然后

NewUser@box$ java -jar install.jar -h
The java class is not found:  pkg1.pkg2.pkg3.Loader

在任何人问之前,不需要类路径,是的,jar 的 cksum 是可以的。事实上:

$ jar tf install.jar
META-INF/
META-INF/MANIFEST.MF
pkg1/
pkg1/pkg2/
pkg1/pkg2/pkg3/
pkg1/pkg2/pkg3/script/
pkg1/pkg2/pkg3/Loader.class
pkg1/pkg2/pkg3/LoaderHelper.class
package.jar

您可以发现MANIFEST.MF 很好,因为它适用于其他用户。

我尝试使用-cp install.jar 执行但没有成功。此外,工作和非工作用户的 $CLASSPATH 仅包含“.”。

有什么线索吗?

谢谢,

f.

【问题讨论】:

标签: classpath environment-variables executable-jar


【解决方案1】:

我正在通过 serverfault 中的davey 回答来关闭它。跟随。

尝试将文件复制到 /tmp 或 /var/tmp 并从那里运行安装。它会进一步/成功吗?

[编辑]

这与实际问题非常接近。我最终做了一个类似的测试,该测试有效,并且通过一些测试使我发现 mount point 权限是错误的,即安装用户 fs 的文件夹属于 root em> 并且可以访问774(对其他人没有执行权)。

我发现低级别的错误权限如何在上层造成最不利的影响总是令人着迷。我有(我仍然不太确定)挂载点的权限影响了挂载的 fs...

无论如何,我们给了它执行权限,,java 找到它的类。整个安装过程还有更多问题,但这些可能会涉及其他问题:)

谢谢大家。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2018-11-17
    • 1970-01-01
    • 2017-12-24
    • 2018-05-12
    • 2021-06-06
    • 1970-01-01
    相关资源
    最近更新 更多