我已经安装了jco3 for linux。
我正在使用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连接测试
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);
}
}
}
但是当我运行我的项目时出现错误
错误:包com.sap.conn.jco不存在
我错过了任何特定的步骤吗?
答案 0 :(得分:0)
我不知道你是否已经这样做了,但是:
export LD_LIBRARY_PATH=/home/zain/sapjco
export CLASSPATH=/home/zain/sapjco/sapjco3.jar
仅适用于当前的bash实例,这意味着如果您关闭该终端窗口,那么该导出路径将会消失。保持它的一种方法是将它添加到你的〜/ .profile
然后你可以运行这个source ~/.bashrc
来刷新你的bash窗口。
不知道这是否有帮助,因为我从来没有在Ubuntu中编写Java,只在Mac上使用Eclipse / Idea。无论如何,如果不是如何做到这一点,那么将sapjco3.jar导入项目的方式就会出现问题。
答案 1 :(得分:0)
您还需要使用CLASSPATH环境变量并将其作为classpath参数传递给将运行项目的JVM实例。
但我不认为你真的在运行你的项目,你必须已经无法编译你的类testjco。 (顺便说一句,我建议遵循常见的Java命名约定,并让所有类名以大写字母开头。)
您正在导入属于SAP Java Connector 3.0(sapjco3.jar)的程序包com.sap.conn.jco
,但在您的代码中,您使用过时的SAP Java Connector 2.0的程序包com.sap.mw.jco
中的JCo API /2.1(sapjco.jar)。这不起作用,无法编译。