0

我已经为 linux 安装了 jco3。

我正在使用 ubuntu 16.04 x86_64 和 java-8-oracle

正如文档所说,我需要将 LD_LIBRARY_PATH 和 CLASSPATH 添加到 jco 目录。

导出 LD_LIBRARY_PATH=/home/zain/sapjco

导出 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 不存在

我错过了什么特别的步骤吗?

4

2 回答 2

0

我不知道你是否已经这样做了,但是:

export LD_LIBRARY_PATH=/home/zain/sapjco
export CLASSPATH=/home/zain/sapjco/sapjco3.jar

仅在当前 bash 实例中工作,这意味着如果您关闭该终端窗口,则该导出路径将消失。保留它的一种方法是将其添加到您的 ~/.profile

然后你可以运行它source ~/.bashrc来刷新你的 bash 窗口。

不知道这是否有帮助,因为我从未在 Ubuntu 中编写过 Java,只在带有 Eclipse/Idea 的 Mac 上编写过代码。无论如何,如果这不是如何做到的,那么您将 sapjco3.jar 导入项目的方式存在问题。

于 2016-09-15T05:17:49.437 回答
0

您还需要使用您的 CLASSPATH 环境变量并将其作为类路径参数传递给将运行您的项目的 JVM 实例。

但我不认为你真的处于运行项目的阶段,你一定已经无法编译你的类 testjco。(顺便说一下,我建议遵循常见的 Java 命名约定,让所有类名都以大写字母开头。)

您正在导入com.sap.conn.jco属于 SAP Java Connector 3.0 (sapjco3.jar) 的包,但在您的代码中,您使用的com.sap.mw.jco是过时的 SAP Java Connector 2.0/2.1 (sapjco.jar) 包中的 JCo API。这不起作用,无法编译。

于 2016-12-28T21:07:59.070 回答