Hi, I want to use mpiJava in openmpi-1.9a1r27361 in 64-bit mode in a heterogeneous Solaris and Linux world and have a problem with the installation of Java 7 update 7. I know that it is not exactly a question for this group, but perhaps somebody wants to use mpiJava in the same way and knows a solution for my problem. I have downloaded and installed the following packages from http://www.oracle.com/technetwork/java
jdk-7u7-solaris-sparc.tar.gz jdk-7u7-solaris-sparcv9.tar.gz jdk-7u7-solaris-i586.tar.gz jdk-7u7-solaris-x64.tar.gz jdk-7u7-linux-i586.tar.gz jdk-7u7-linux-x64.tar.gz The 32-bit Solaris packages contain everyting and the 64-bit packages contain the add-ons for 64-bit. Especially they create separate directories for the 64-bit binary programs in <path to Java>/bin and <path to Java>/jre/bin. It's different for Linux, because both packages contain everything and 32- and 64-bit binary programs are installed in the same directory so that they overwrite each other. Therefore I created subdirectories "amd64" in both "bin" directories, installed the 64-bit package first and moved the binary programs into the new subdirectories before I installed the 32-bit version. Unfortunately that doesn't solve the problem, because the 64-bit version of "javac" cannot find necessary libraries (although the library directory is part of LD_LIBRARY_PATH). /usr/local/jdk1.7.0_07/bin/amd64/javac: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory linpc4 fd1026 97 cd /usr/local/jdk1.7.0_07/bin/ linpc4 bin 98 ldd javac linux-gate.so.1 => (0xffffe000) libpthread.so.0 => /lib/libpthread.so.0 (0xf7750000) libjli.so => /usr/local/jdk1.7.0_07/bin/../jre/lib/i386/jli/libjli.so (0xf773b000) libdl.so.2 => /lib/libdl.so.2 (0xf7736000) libc.so.6 => /lib/libc.so.6 (0xf75c9000) /lib/ld-linux.so.2 (0xf776c000) linpc4 bin 99 cd amd64/ linpc4 amd64 100 ldd javac linux-vdso.so.1 => (0x00007fffc11ff000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f11d1083000) libjli.so => not found libdl.so.2 => /lib64/libdl.so.2 (0x00007f11d0e7f000) libc.so.6 => /lib64/libc.so.6 (0x00007f11d0aef000) /lib64/ld-linux-x86-64.so.2 (0x00007f11d12a0000) The problem is that the path to the library is hardcoded in the Linux version of "javac" so that it looks in the wrong directory if you move the program into a subdirectory. linpc4 amd64 101 strings javac /lib64/ld-linux-x86-64.so.2 ... $ORIGIN/../lib/amd64/jli:$ORIGIN/../jre/lib/amd64/jli ... "Solaris x86_64" doesn't have this problem. sunpc4 bin 105 cd amd64/ sunpc4 amd64 106 ldd javac libthread.so.1 => /usr/lib/amd64/libthread.so.1 libjli.so => /usr/local/jdk1.7.0_07/bin/amd64/../../jre/lib/amd64/jli/libjli.so libdl.so.1 => /usr/lib/amd64/libdl.so.1 libc.so.1 => /usr/lib/amd64/libc.so.1 libm.so.2 => /usr/lib/amd64/libm.so.2 sunpc4 amd64 107 strings javac -J-ms8m Unknown 1.7.0_07-b10 /classes /lib/tools.jar com.sun.tools.javac.Main java JAR file Main class /jdk /usr/jdk Has anybody solved this problem without installing two complete and separate versions of Java? Does anybody know about a Java package for Linux which behaves in the same manner as the package for "Solaris x86_64"? Is sombody from Oracle in this group who can provide such a package on the Java web page? Thank you very much for any suggestions in advance. Kind regards Siegmar