2014-09-23 49 views
1

在使用SAPJCO 3.0.11 jar for 32位windows XP时出现下面提到的错误OS。当我从市场上下载32,但SAPJCO罐子时,我使用zip libarary中提到的StepByStepClient示例。 我下载的jar文件从来没有用于32位系统的dll文件。 请让我知道我错过了什么,请帮我解决这个问题。在32位窗口中使用SAP jco 3.0.11获取“java.lang.UnsatisfiedLinkError:no java.aibrary.path中的sapjco3”错误

下面是错误:

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 

感谢,罗希特

+0

你可以发布你的代码吗? – Max 2014-09-23 14:10:27

回答

3

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

所以,SAP Java连接器基本上由两个部分组成:

  • 一个sapjco3.jar文件,Java绑定(独立平台)。
  • 本地库(.so文件或.dll文件)的平台特定绑定。

为了使应用程序的工作,只是保证两个文件都在你的应用程序的路径(或CLASSPATH),你就大功告成了。

如果您在Windows下,将.dll文件复制到\Windows\System32将可以正常工作,但a puppy会在您每次遇到时死掉。如果你爱小狗,不要那样做。永远。

更好的是,它会总是阅读文档。这真是一个非常好的做法。 SAP Java Connector 3.0的文档清楚地声明如下:

SAP Java Connector 3.0 :: Installation

...

Microsoft Windows

...

Note: Do not copy the sapjco3.dll neither into the {windows-dir}\system32 nor into the {windows-dir}\SysWOW64 directory. This will break the operability of other JCo versions that are already installed on the same system. Furthermore you would risk that the current installation also would not work anymore, if the sapjco3.dll gets replaced in the respective Windows system directory in the future.

  • Then add {sapjco3-path} to the PATH environment variable.
  • Finally, add {sapjco3-path}\sapjco3.jar to your CLASSPATH environment variable.

...

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

相关问题