2

在将 SAPJCO 3.0.11 jar 用于 32 位 windows XP OS 时,我遇到了下面提到的错误。当我从市场下载 32 但 SAPJCO jar 时,我正在使用 zip 库中提到的 StepByStepClient 示例。我下载的 Jar 从来没有 32 位系统的 dll 文件。请让我知道我缺少什么,并请帮助我解决这个问题。

以下是错误:

ava.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)
    at java.lang.Runtime.loadLibrary0(Runtime.java:849)
    at java.lang.System.loadLibrary(System.java:1088)
    at com.sap.conn.jco.rt.DefaultJCoRuntime.loadJCoLibrary(DefaultJCoRuntime.java:772)
    at com.sap.conn.jco.rt.DefaultJCoRuntime.registerNativeMethods(DefaultJCoRuntime.java:382)
    at com.sap.conn.jco.rt.JCoRuntime.registerNatives(JCoRuntime.java:1200)
    at com.sap.conn.rfc.driver.CpicDriver.<clinit>(CpicDriver.java:792)
    at com.sap.conn.rfc.engine.DefaultRfcRuntime.getVersion(DefaultRfcRuntime.java:36)
    at com.sap.conn.rfc.api.RfcApi.RfcGetVersion(RfcApi.java:238)
    at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:217)
    at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:98)
    at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:190)
    at com.sap.conn.jco.JCo.createJCo(JCo.java:52)
    at com.sap.conn.jco.JCo.<clinit>(JCo.java:26)
    at com.sap.conn.jco.JCoDestinationManager.getDestination(JCoDestinationManager.java:77)
    at com.sap.connect.StepByStepClient.step1Connect(StepByStepClient.java:91)
    at com.sap.connect.StepByStepClient.main(StepByStepClient.java:358)
Exception in thread "main" java.lang.ExceptionInInitializerError: JCo initialization failed with java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path

谢谢,罗希特

4

1 回答 1

5

首先,尽管此连接器是为 Java 设计的,但您应该知道 SAP Java 连接器不是独立于平台的。你应该已经猜到了,因为在 SAP 的网站上,每种架构都有不同的下载链接。

因此,SAP Java 连接器基本上由两部分组成:

  • 一个sapjco3.jar文件,用于 java 绑定(平台无关)。
  • 用于平台特定绑定的本机库(.so-file 或-file)。.dll

要使您的应用程序正常工作,只需确保这两个文件都在您的应用程序的 PATH(或 CLASSPATH)中,然后您就完成了。

如果您在 Windows 下,将.dll文件复制到\Windows\System32将起作用,但每次这样做都会有一只小狗死去。如果您喜欢小狗,请不要这样做。曾经。

更好的是,总是阅读文档。这确实是一个非常好的做法。SAP Java Connector 3.0 的文档清楚地说明了以下内容:

SAP Java 连接器 3.0 :: 安装

...

微软Windows

...

注意:不要将sapjco3.dll既不复制到{windows-dir}\system32也不复制到{windows-dir}\SysWOW64目录中。这将破坏已安装在同一系统上的其他 JCo 版本的可操作性。sapjco3.dll此外,如果将来在相应的 Windows 系统目录中被替换,您将面临当前安装也将不再工作的风险。

  • 然后添加{sapjco3-path}到PATH环境变量。
  • 最后,添加{sapjco3-path}\sapjco3.jar到您的 CLASSPATH 环境变量。

...

这意味着 SAP 开发人员喜欢小狗。

于 2017-07-17T23:07:02.523 回答