关于sap:SAP-Java-Connector-组件介绍

3次阅读

共计 1115 个字符,预计需要花费 3 分钟才能阅读完成。

SAP Java Connector 3.1 运行时环境由两局部组成:

  1. sapjco3.jar – 蕴含 JCo 的 Java 运行时类的存档
  2. {library prefix}sapjco3{shared library extension} – 蕴含 JCo 原生代码的 JNI 库

JCo 的 JNI 库蕴含用于网络通信的本机代码。JCo 存档和 JNI 库之间只有涣散的耦合,然而 JCo 须要 JNI 库的特定最低版本,该版本通常与散发包中的 JCo 存档一起提供。

留神:如果开发人员应用的是 32 位 JVM,则还须要 32 位 JCo JNI 库,无论是在 32 位还是 64 位操作系统上运行都是如此。

运行时初始化逻辑

当应用程序第一次援用 JCo 类时,它会被关联的类加载器 (class loader) 加载。

在此过程中,将执行 JCo 的动态初始化程序。该例程将应用以下算法搜寻并加载 JCo JNI 库:

  1. 尝试从 sapjco3.jar 文件所在的同一目录加载 sapjco3 JNI 库。
  2. 尝试从 sapjco3.jar 文件所在的平台相干子目录加载 sapjco3 JNI 库。适当的 JNI 库加载门路是通过思考以后应用的操作系统和 JVM 运行时环境来确定的,并援用以下子目录之一:

ntamd64,ntintel,linuxx86_64,linuxppc64le,linuxs390x,darwinintel64,rs6000_64,hpia64,sunx86_64,sun_64,os390_64,as400_pase_64

  1. 沿着 java.library.path 零碎属性中定义的目录门路从左到右搜寻 sapjco3 JNI 库,如果找到则从那里加载它。
    留神:如果不手动设置该属性,JVM 通常会在启动时将 OS 特定的库门路环境变量设置为默认的 java.library.path 零碎属性。
  2. 通过将此工作委托给它的 System.loadLibrary(String libname) 办法,让 JVM 解决 sapjco3 JNI 库的加载。

如果找不到或无奈加载 sapjco3 JNI 库,您将收到 UnsatisfiedLinkError 谬误,其中蕴含操作系统提供的详细信息。

此谬误音讯可能由以下起因之一引起:

  • 应用上述算法无奈找到 sapjco3 JNI 库,因为您无心中将其装置到了谬误的目录,或者遗记在操作系统特定的库门路环境变量或 java.library.path 零碎属性中指定其目录。
  • 找到的 sapjco3 JNI 库版本太旧。
  • 发现的 sapjco3 JNI 库短少执行权限标记。
  • 找到的 sapjco3 JNI 库的位宽与 JVM 不同(32 位与 64 位)。
  • 找到的 sapjco3 JNI 库来自不同的 JCo 发行版,不适用于您的操作系统和 / 或硬件处理器。
  • 找到的 sapjco3 JNI 库须要更高的操作系统版本。
正文完
 0