错误:包com.sap.conn.jco在ubuntu上不存在

时间:2016-09-15 03:26:00

标签: java ubuntu sap jco sapjco3

我已经安装了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不存在

我错过了任何特定的步骤吗?

2 个答案:

答案 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)。这不起作用,无法编译。