Tomcatを実行しようとすると、このエラーが発生します。
「Java.lang.UnsatisfiedLinkError:C:\ Program Files(x86)\ Apache-Tomcat-7.0.34\bin\tcnative-1.dll:IA 32ビットプラットフォームでAMD 64ビット.dllをロードできません」 。
ただし、64ビットのJREをダウンロードして、Javaバージョン:
C:\ Program Files(x86)\ Apache-Tomcat-7.0.34\bin> Java -version
Javaバージョン「1.7.0_10」
Java(TM)SEランタイム環境(ビルド1.7.0_10-b18)
Java HotSpot(TM)64-Bit Server VM(ビルド23.6-b04、混合モード)
この質問は以前ここで見たことがありますが、1つには解決策がなく、もう1つにはEclipseの問題がありましたが、Tomcatに直接アクセスするとこのエラーが発生します。
どの「IA 32ビットプラットフォーム」が検出されているかを確認する方法、およびTomcatを正しい方向に向ける方法を教えてください。また、これが私のサーブレットがEclipseを介してこの404エラーを受け取っている理由でしょうか?
タイプステータスレポート
メッセージ/ JSPandServlet/Controller
説明要求されたリソースは利用できません。
C:\ Program Files(x86)\ Apache-Tomcat-7.0.34\bin> configtest.bat
CATALINA_BASEを使用:「C:\ Program Files(x86)\ Apache-Tomcat-7.0.34」
CATALINA_HOMEを使用:「C:\ Program Files(x86)\ Apache-Tomcat-7.0.34」
CATALINA_TMPDIRを使用:「C:\ Program Files(x86)\ Apache-Tomcat-7.0.34\temp」
JRE_HOMEの使用:「C:\ Program Files(x86)\ Java\jre7」
CLASSPATHの使用: "C:\ Program Files(x86)\ Apache-Tomcat-7.0.34\bin\bootstra p.jar; C:\ Program Files(x86)\ Apache-Tomcat-7.0.34\bin\Tomcat-juli .jar "
Java.lang.UnsatisfiedLinkError:C:\ Program Files(x86)\ Apache-Tomcat-7.0.34\bin\tcnative-1.dll:IA 32ビットプラットフォームでAMD 64ビット.dllをロードできません
at Java.lang.ClassLoader$NativeLibrary.load(Native Method)
at Java.lang.ClassLoader.loadLibrary1(Unknown Source)
at Java.lang.ClassLoader.loadLibrary0(Unknown Source)
at Java.lang.ClassLoader.loadLibrary(Unknown Source)
at Java.lang.Runtime.loadLibrary0(Unknown Source)
at Java.lang.System.loadLibrary(Unknown Source)
at org.Apache.Tomcat.jni.Library.<init>(Library.Java:42)
at org.Apache.Tomcat.jni.Library.initialize(Library.Java:174)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at Java.lang.reflect.Method.invoke(Unknown Source)
at org.Apache.catalina.core.AprLifecycleListener.init(AprLifecycleListener.Java:180)
at org.Apache.catalina.core.AprLifecycleListener.isAprAvailable(AprLifecycleListener.Java:85)
at org.Apache.catalina.connector.Connector.setProtocol(Connector.Java:595)
at org.Apache.catalina.connector.Connector.<init>(Connector.Java:69)
at org.Apache.catalina.startup.ConnectorCreateRule.begin(ConnectorCreateRule.Java:62)
at org.Apache.Tomcat.util.digester.Digester.startElement(Digester.Java:1276)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.Sun.org.Apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.Apache.Tomcat.util.digester.Digester.parse(Digester.Java:1537)
at org.Apache.catalina.startup.Catalina.load(Catalina.Java:610)
at org.Apache.catalina.startup.Catalina.load(Catalina.Java:658)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at Java.lang.reflect.Method.invoke(Unknown Source)
at org.Apache.catalina.startup.Bootstrap.load(Bootstrap.Java:281)
at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:455)
2012年12月26日7:15:47 PM org.Apache.catalina.core.AprLifecycleListener init
情報:実稼働環境で最適なパフォーマンスを実現するAPRベースのApache TomcatネイティブライブラリがJava.library.pathに見つかりませんでした:C:\ Program Files(x86)\ Java\jre7\bin; C:\ windows\Sun\Java\bin; C:\ windows\system32; C:\ windows; C:\ Program Files\Common Files\Microsoft Shared\Microsoft Online Services; C:\ Program Files(x86)\ Common Files\Microsoft Shared\Microsoft Online Services ; C:\ Program Files\Common Files\Microsoft Shared\Windows Live; C:\ Program Files(x86)\ Common Files\Microsoft Shared\Windows Live; C:\ Program Files(x86)\ PHP \; C:\ windows\system32; C:\ windows; C:\ windows\System32\Wbem; c:\ Program Files(x86)\ Microsoft SQLServer\100\Tools\Binn \; c:\ Program Files\Microsoft SQL Server\100\Tools\Binn \; c:\ Program Files\Microsoft SQL Server\100\DTS\Binn \; c:\ Program Files(x86)\ Microsoft ASP.NET\ASP.NET Web Pages\v1.0 \; c:\ Program Files (x86)\ Microsoft SQL Server\10 0\Tools\Binn\VSShell\Common7\IDE \; c:\ Program Files(x86)\ Microsoft SQL Server\100\DTS\Binn \; C:\ Program Files(x86) \風ows Live\Shared; C:\ Program Files\TortoiseSVN\bin; C:\ Program Files\Microsoft\Web Platform Installer \; C:\ Program Files\SourceGear\Common\DiffMerge \; C:\ Ruby193\bin;.
2012年12月26日7:15:47 PM org.Apache.coyote.AbstractProtocol init
情報:ProtocolHandler ["http-bio-8080"]を初期化しています
2012年12月26日7:15:47 PM org.Apache.coyote.AbstractProtocol init
情報:ProtocolHandler ["ajp-bio-8009"]を初期化しています
2012年12月26日7:15:47 PM org.Apache.catalina.startup.Catalina load
情報:初期化は448ミリ秒で処理されました
ああ、問題が見つかりました。 JRE_HOMEからアクセスされている奇妙な場所に古いJREがありました。そのディレクトリを削除し、環境変数を修正しました。
解決策を見つけました。問題は、私のJRE_HOMEが私のマシンでは64ビットのマシンであった32ビットのJREを指していることでした。 64ビットJREをインストールし、システム変数で置き換えたところ、サーバーがクリーンになりました
Eclipseが指すデフォルトのバージョンを確認してください。Properties-> Java Compiler。インストールされているJREバージョンに切り替えます。これは私のために働いた。ありがとう。
IDEで使用されているプロジェクトSDKバージョンを確認してください。
Intellij IDEAの場合:ファイル->プロジェクト構造->プロジェクト。 Eclipseの場合:プロパティ-> Javaコンパイラ。
インストールされているJDK x64バージョンに切り替えます。
64ビットWindowsマシンでJenkinsスレーブを実行しようとしているときに、「AMD 64ビットプラットフォームでIA 32ビット.dllをロードできません」という同じメッセージについて、32を指していたJava_TOOL_OPTIONSおよび_Java_OPTIONS環境変数を削除して修正しましたビットjvmhook。
似たようなメッセージに直面した問題は、Linuxマシン(libmyLic.so)でswigを介して共有ネイティブライブラリを作成し、それをWindowsにコピーして、Java test。このテストはSystem.loadLibraryまたはSystem.loadインターフェースを使用するはずでしたが、swigがUNIX環境用の共有ネイティブライブラリ(C++コードをJavaにラップ)を作成したため、動作しません。問題。
Windowsサーバーでのネクロマンシング(2019年3月)。スタックオーバーフローに関するいくつかの回答があります。問題IA 32ビットプラットフォームでAMD 64ビット.dllをロードできません "。すべて表示ソリューションの一部であり、すべてが一緒になっています。
原因:Javaの32ビットバージョンが使用されていますが、ライブラリは64ビットバージョンを想定しています。
(1)Java_HOMEおよびCATALINA_HOMEが設定されていることを確認します。何かのようなもの
java_HOME = C:\ Program Files\Java\jre1.8.0_201を設定CATALINA_HOME = C:\ Program Files(x86)\ Tomcat-9.0.16を設定
これらは2019年3月のデフォルトの場所でした。実際のバージョンは重要ではありません。次のコマンドが機能するために重要なのは何ですか:
"%Java_home%\bin\Java.exe" -version
"%catalina_home%\bin\configtest.bat"
最初のコマンドでは、数行が表示されます。行の1つは
Java HotSpot(TM) 64-bit Server VM
もちろん、64ビットWindowsマシンでのみ64ビット。 (確認方法:windows - run - system information
。システムタイプで、32または54ベースのシステムであるかどうかを記載する必要があります)
構成テストは、Tomcatが使用するJavaおよびcatalinaホームの値を示します。
間違ったJavaバージョン: