0

我最近在我的 AIX 服务器中安装了 git,并且 git 工作正常。

但是java现在不工作了。

如果我执行 java --version 我会得到以下输出。

admin:stud:/webapps/WEB-INF/classes> java --version
exec(): 0509-036 Cannot load program java because of the following errors:
        0509-150   Dependent module /opt/freeware/lib/libiconv.a(shr4_64.o) could not be loaded.
        0509-152   Member shr4_64.o is not found in archive

我怎样才能解决这个问题。

以前安装了以下 java 版本。

admin:stud:/demo> java -version
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pap64dev-20080315 (SR7))
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 AIX ppc64-64 j9vmap6423-20080315 (JIT enabled)
J9VM - 20080314_17962_BHdSMr
JIT  - 20080130_0718ifx2_r8
GC   - 200802_08)
JCL  - 20080314

这是我的 QA 服务器的输出,它安装了与当前给我错误的开发机器相同的 java。我能做些什么来解决这个问题

4

1 回答 1

0

在 AIX 上编译很难。我一般给 ld 一个 libiconv 的绝对路径,因为有开源版本和 AIX 的版本。

一个想法是将git移到一边。我通常创建一个名为 .real 的目录并将 git 从它开始的位置移动到 .real 子目录。即如果get 是/down/this/path/git 然后将它移动到/down/this/path/.real/git。

然后编写一个脚本 /down/this/path/git 设置 LIBPATH 并对 /down/this/path/.real/git 执行 exec

#!/bin/ksh
export LIBPATH=/blah/blah:/usr/lib
exec /down/this/path/.real/git "$@"

Java 使这变得复杂,因为它设置 LIBPATH(或它曾经设置为)并忽略 LIBPATH 之前设置的内容。

另外......你不想混合和匹配两个libiconv。如果有东西想要开源版本,它需要使用它而不是 AIX 版本,反之亦然。

祝你好运

于 2013-01-30T22:57:12.477 回答