我有一个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。
答案 0 :(得分:0)
我正在关注服务器故障中davey的答案,以便关闭它。如下:
尝试将文件复制到/ tmp或/ var / tmp并从那里运行安装。是否进一步/成功?
<强> [编辑] 强>
这与实际问题非常接近。我最终做了一个类似的测试工作,并通过一些测试导致我发现挂载点权限是错误的,即用户的fs挂载的文件夹属于 root 并且访问774
(没有执行其他人)。
我发现总是很有趣,低级别的错误权限会导致上层的最不利影响。我(并且我仍然不太确定)挂载点的权限影响了挂载的fs ......
无论如何,我们给了它exec权限和voilá,java找到了它的类。整个安装存在更多问题,但这些可能会涉及其他问题:)
谢谢大家。