Tomcat==>Can't load IA 64-bit .dll on a AMD 64-bit platform

java.lang.UnsatisfiedLinkError: D:\tools\tomcat\apache-tomcat-7.0.53-windows-i64\apache-tomcat-7.0.53\bin\tcna
tive-1.dll: Can't load IA 64-bit .dll on a AMD 64-bit platform
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1807)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1732)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1028)
        at org.apache.tomcat.jni.Library.<init>(Library.java:40)
        at org.apache.tomcat.jni.Library.initialize(Library.java:172)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.core.AprLifecycleListener.init(AprLifecycleListener.java:178)
        at org.apache.catalina.core.AprLifecycleListener.isAprAvailable(AprLifecycleListener.java:83)
        at org.apache.catalina.connector.Connector.setProtocol(Connector.java:592)
        at org.apache.catalina.connector.Connector.<init>(Connector.java:66)
        at org.apache.catalina.startup.ConnectorCreateRule.begin(ConnectorCreateRule.java:62)
        at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1288)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:50
1)
        at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocume
ntParser.java:179)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocument
FragmentScannerImpl.java:1343)
****************************************************
【分析及解决】
tomcat【tcnative-1.dll】对cpu区分x64还是i64的,windows下部署的tomcat版本需要和cpu架构和位数一致。
  ==>比如:x64下需要x64介质,而不建议用i64的介质。
  ==>Intel 64bit cpu有x64和i64之分(Itanium)
  ==>安腾cpu是服务器cpu,64-bit Itanium,只能在安腾上运行,一般的pc都是x64 cpu,服务器才会有i64 cpu。
  ==>同时也要考虑tomcat,jdk,os,cpu这四者的位数一致,当然64bit的os上是可以跑32bit的软件的。
  ==>实际上就是tomcat需要和jdk的位数一致。
  ==>建议:tomcat,jdk,os,cpu的位数和架构一致,其中tomcat区分cpu架构和位数,jdk仅区分cpu的位数。
***************************************************

猜你喜欢

转载自can-do.iteye.com/blog/2245523