当我尝试运行我的一个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的信息。
这方面的任何参考也会有很大的帮助。
提前致谢。
答案 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位。