环境变量干扰jar

时间:2011-02-07 18:00:06

标签: classpath environment-variables executable-jar

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

基本理念是:

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。

1 个答案:

答案 0 :(得分:0)

我正在关注服务器故障中davey的答案,以便关闭它。如下:

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

<强> [编辑]

这与实际问题非常接近。我最终做了一个类似的测试工作,并通过一些测试导致我发现挂载点权限是错误的,即用户的fs挂载的文件夹属于 root 并且访问774(没有执行其他人)。

我发现总是很有趣,低级别的错误权限会导致上层的最不利影响。我(并且我仍然不太确定)挂载点的权限影响了挂载的fs ......

无论如何,我们给了它exec权限和voilá,java找到了它的类。整个安装存在更多问题,但这些可能会涉及其他问题:)

谢谢大家。