java.lang.UnsatisfiedLinkError - 运行z / OS应用程序时

时间:2018-03-19 05:39:03

标签: java c compilation websphere zos

当我尝试运行我的一个Java应用程序(部署在IBM Websphere App服务器中)时,我收到以下错误,

  

java.lang.UnsatisfiedLinkError:PATH / file.so(EDC5253S AMODE64   应用程序正在尝试加载AMODE31 DLL加载模块。   (errno2 = some_address ))at   java.lang.ClassLoader.loadLibraryWithPath(ClassLoader.java:1344)

有没有人面临同样的AMODE64问题?

或者有人可以提供有关如何将代码编译到AMODE64的信息。

这方面的任何参考也会有很大的帮助。

提前致谢。

2 个答案:

答案 0 :(得分:0)

您询问了有关如何在64-bt模式下编译代码的信息,但通常情况下,作为最终用户,您不会那样做,本机库/ dll的提供程序会这样做,因为您需要源代码。您使用PATH / file.so替换了上面错误消息中的库的文件名,因此我无法向您提供有关该库的提供者可能是谁的任何指导。使用库的名称,搜索提供程序,然后询问它们是否以64位模式编译的库版本。 如果您拥有库的代码,请参阅this IBM KnowledgeCenter topic以获取有关如何在64位模式下编译和绑定代码的信息。

答案 1 :(得分:0)

在z / OS上,如果使用语言环境,则不能使用混合单地址应用程序,其中某些部分已编译为31位,而某些部分则编译为64位。所有现代高级语言都使用语言环境(例如C,C ++,Java,COBOL,PL / I),这就是造成问题的原因。 根据您使用的Java版本,您可以切换到31位JVM或(最好)重新编译并将C DLL重新链接为64位。