我有一个 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
工作用户和不工作用户的 仅包含“ .
”。
[编辑]
我似乎在这个新用户身上发现了更多奇怪的事情。还有一些其他事情不起作用,这可能表明用户创建存在问题。不幸的是,我对 AIX 中的用户管理了解不多,所以我希望你们能帮助我从这些线索中找出答案;
我刚刚发现tar
无法简单地创建到该用户的家中。
NewUser@box$ echo "thisisatest" > testfile.txt
NewUser@box$ tar cf testfile.txt.tar testfile.txt
tar: The getwd subroutine failed.
Cannot open the parent directory.
NewUser@box$ ls -l testfile*
-rw-r----- 1 user group 12 Feb 08 14:15 testfile.txt
-rw-r----- 1 user group 0 Feb 08 14:15 testfile.txt.tar
testfile.txt.tar
(注意0字节?
不用说,所有这些命令对其他用户都有效。
除此之外,实际上还有另一个与连接有关的小scp
症状WinSpc
。
连接无法工作,最初出现以下错误:
为了纠正这个错误,我只需remote path
在 WinScp 的配置(显然定义了用户主目录的路径)中进行配置,它就可以正常工作。
我在另一台服务器上使用 WinScp,它无需任何配置就能正常工作 —— 我起初忽略了这个错误,但现在看来更为相关。
请注意,/etc/passwd
该用户的所有参数都是正确的。可能有些狡猾的配置...
此外,主文件夹具有所有正确的权限 - 我不确定“粘性位”与它有何关系,但是..好吧..
提前致谢!
谢谢,
F。
答案1
尝试将文件复制到 /tmp 或 /var/tmp 并从那里运行安装。它会继续/成功吗?
[编辑]
这非常接近实际问题。我最终进行了类似的测试,该测试成功了,经过一些测试,我发现挂载点权限错误,即用户 fs 挂载的文件夹属于根并有权访问774
(无执行权其他的)。
我总是发现,低层的错误权限会对上层产生最不利的影响,这真是令人着迷。我曾经(但我仍然不太确定)认为挂载点的权限会影响挂载的文件系统...
无论如何,我们给了它执行权限,并且瞧,java 找到它的类。整个安装过程中还存在更多问题,但这些问题可能会引发其他问题 :)
谢谢大家。