我已经为linux安装了JCo3。
我正在使用ubuntu 16.04 x86_64和java-8-oracle
如文档所述,我需要将LD_LIBRARY_PATH和CLASSPATH添加到JCo目录。
export LD_LIBRARY_PATH=/home/zain/sapjco
export CLASSPATH=/home/zain/sapjco/sapjco3.jar
然后创建简单的JCo连接测试,但是当我运行我的项目时,我得到了错误
错误:package com.sap.conn.jco不存在
我有没有错过什么特别的步骤?
代码:import com.sap.conn.jco.*;
public class testjco {
public static void main(String[] args) {
JCO.Client mConnection;
try {
mConnection = JCO.createClient("301", // SAP client
"somecoolguy", // userid
"****", // password
"EN", // language
"XXX", // application server host name
"00"); // system number
mConnection.connect();
System.out.println(mConnection.getAttributes());
mConnection.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
System.exit(1);
}
}
}
我不知道你是否已经这样做了,但是:
export LD_LIBRARY_PATH=/home/zain/sapjco
export CLASSPATH=/home/zain/sapjco/sapjco3.jar
只在当前的bash实例中工作,这意味着如果您关闭了终端窗口,那么导出路径将会消失。保存它的一种方法是将它添加到~/.profile
中那么你可以运行这个source ~/.bashrc
来刷新你的bash窗口。
不知道这是否有帮助,因为我从来没有在Ubuntu中编写Java,只在Mac上使用Eclipse/Idea。无论如何,如果不是这样做的,那么导入sapjco .jar到项目的方式就有问题。
您还需要使用CLASSPATH环境变量,并将其作为CLASSPATH参数传递给运行项目的JVM实例。
但是我不认为你真的在运行你的项目的步骤,你必须已经失败编译你的类testjco。(顺便说一下,我建议遵循通用的Java命名约定,让所有类名以大写字母开头。)
您正在导入属于SAP Java Connector 3.0 (sapjco.jar)的包com.sap.conn.jco
,但在您的代码中,您使用过时的SAP Java Connector 2.0/2.1 (sapjco.jar)的包com.sap.mw.jco
中的JCo API。