Exception: Exception in thread "main" java.lang.ExceptionInInitializerError: JCO.classInitialize(): Could not load middleware layer 'com.sap.mw.jco.rfc.MiddlewareRFC' JCO.nativeInit(): Could not initialize dynamic link library librfc. Found version "620.0.1132" but required at least version "640.0.59". at com.sap.mw.jco.JCO.<clinit>(JCO.java:735)
Cause: This exception occurs when the installed version of librfc32.dll is out of date with the currently installed versions of sapjcorfc.dll and sapjco.jar. Your workstation likely has an older version of librfc32.dll that came with the SAPGUI installation or even a very old version of JCo. Notice that the versions called out are mismatched roughly at the versions of two different versions of the SAP Web Application server, where the new 640.x version of sapjcorfc.dll is being used with a 620.x version of librfc32.dll.
Resolution: Extract librfc32.dll from the current version of the JCo archive. Copy this file to the Windows system directory i.e. c:windowssystem32. Again, this is the directory used by other SAP applications and should be used for the JCo connector, as well.
TROUBLESHOOTING JCO EXCEPTIONS
Scenario 1: JCo is unable to find the RFCDSK API library in the system path
Scenario 2: JCo is unable to find the JCORFC library in the system path
Scenario 3: JCo cannot load its RFC middleware layer (3 exceptions)
Scenario 4: JCo finds the wrong version of the librfc library
Scenario 5: JCo exceeds the number of SAP-allocated work processes
Scenario 6: Installing/porting JCo to other operating systems
Review: Conclusion and more resources