使用 SAP jco 3.0.11 for 32 位窗口获取“java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path”错误

Roh*_*rma 2 java jco

在为 32 位 Windows XP 操作系统使用 SAPJCO 3.0.11 jar 时,我遇到了下面提到的错误。当我从市场下载 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
Run Code Online (Sandbox Code Playgroud)

谢谢,罗希特

Die*_*roz 5

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

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

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

要使您的应用程序正常工作,只需确保这两个文件都在您的应用程序的 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 开发人员喜欢小狗。