Co error: java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server/libsapjcorfc.so: libstdc++.so.5: 无法打开共享对象文件: 没有那个文件或目录].
java.library.path [/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server:/usr/local/java/jdk1.7.0_79/jre/lib/amd64:/usr/local/java/jdk1.7.0_79/jre/../lib/amd64::/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server:/usr/java
一开始以为是没有安装libstdc++ 重新装了遍libstdc++.so.5还是不好使,将安装的libstdc++.so.5拷贝到libstdc++-libc6.2-2.so.3目录下提示:
JCo error: java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC'
JCO.nativeInit(): Could not initialize dynamic link library sapjcorfc [/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server/libsapjcorfc.so: libstdc++.so.5: 错误 ELF 类: ELFCLASS32]. java.library.path [/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server:/usr/local/java/jdk1.7.0_79/jre/lib/amd64:/usr/local/java/jdk1.7.0_79/jre/../lib/amd64::/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]
at com.sap.mw.jco.JCO.(JCO.java:871)
at com.sap.mw.jco.About.(About.java:49)
at com.sap.mw.jco.About.main(About.java:110)
网上一查刚才放到目录下的libstdc++.so.5是/usr/lib/内32位版本,
到本地usr/lib64目录下 执行 ls libstdc++* 有个 6的版本比5的高,将libstdc++.so.6拷贝到目录下问题依旧
最后从别的机器上 /usr/lib64/下找了个libstdc++.so.5 64位版本,好了!!!!
四、以下是环境变量的几个设置:
vim /etc/profile
在末尾加上ibrfccm.so、libsapjcorfc.so加入到LD_LIBRARY_PATH、sapjco.jar加入到CLASSPATH中
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/java/jdk1.7.0_79/jre/lib/amd64/server
export CLASSPATH=$CLASSPATH:/usr/local/java/jdk1.7.0_79/lib/sapjco.jar
保存并发布source /etc/profile(一定要执行)
设置完成后执行:java -jar /usr/local/java/jdk1.7.0_79/lib/sapjco.jar 查看是否成功
若不报错说明成功!