简体   繁体   中英

java.lang.UnsatisfiedLinkError - when running z/OS application

When I am trying to run one of my Java application (which is deployed in IBM Websphere App server), I am getting the below error,

java.lang.UnsatisfiedLinkError: PATH/file.so (EDC5253S An AMODE64 application is attempting to load an AMODE31 DLL load module. (errno2= some_address )) at java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1344)

Did anyone face the same issue of AMODE64 ?

Or could someone provide info on how to compile code to AMODE64.

Any reference in this would also be of great help.

Thanks in advance.

You asked for info on how to compile code in 64-bt mode, but typically, as the end-user, you would not be the one to do that, the provider of the native library/dll would do that because you need the source code. You replaced the file name of the library in the error message above with PATH/file.so, so I can't provide you any guidance on who the provider of that library might be. Using the name of the library, search for for the provider and then ask them for a version of the library compiled in 64-bit mode. On the outside chance you own the code for the library, see this IBM KnowledgeCenter topic for information on how to compile and bind code in 64-bit mode.

On z/OS, you can't have a mixed single-address application that has some parts compiled 31-bit and some parts compiled 64-bit, if you are using Language Environment. All modern high level languages -do- use Language Environment (eg C, C++, Java, COBOL, PL/I), and so this is what is causing your problem. Depending on the version of Java you are using, you can either switch to a 31-bit JVM or (preferably) recompile and relink your C DLLs as 64-bit.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM