web-dev-qa-db-ja.com

tcnative-1.dll IA 32ビットプラットフォームでAMD 64ビット.dllをロードできない

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ミリ秒で処理されました

29
cmdkennedy

ああ、問題が見つかりました。 JRE_HOMEからアクセスされている奇妙な場所に古いJREがありました。そのディレクトリを削除し、環境変数を修正しました。

20
cmdkennedy

解決策を見つけました。問題は、私のJRE_HOMEが私のマシンでは64ビットのマシンであった32ビットのJREを指していることでした。 64ビットJREをインストールし、システム変数で置き換えたところ、サーバーがクリーンになりました

9
Komal Ahluwalia

Eclipseが指すデフォルトのバージョンを確認してください。Properties-> Java Compiler。インストールされているJREバージョンに切り替えます。これは私のために働いた。ありがとう。

4
Anoop Velluva

IDEで使用されているプロジェクトSDKバージョンを確認してください。

 Intellij IDEAの場合:ファイル->プロジェクト構造->プロジェクト。
 Eclipseの場合:プロパティ-> Javaコンパイラ

インストールされているJDK x64バージョンに切り替えます。

1
naXa

64ビットWindowsマシンでJenkinsスレーブを実行しようとしているときに、「AMD 64ビットプラットフォームでIA 32ビット.dllをロードできません」という同じメッセージについて、32を指していたJava_TOOL_OPTIONSおよび_Java_OPTIONS環境変数を削除して修正しましたビットjvmhook。

0
Anuroopa Shenoy

似たようなメッセージに直面した問題は、Linuxマシン(libmyLic.so)でswigを介して共有ネイティブライブラリを作成し、それをWindowsにコピーして、Java test。このテストはSystem.loadLibraryまたはSystem.loadインターフェースを使用するはずでしたが、swigがUNIX環境用の共有ネイティブライブラリ(C++コードをJavaにラップ)を作成したため、動作しません。問題。

0
Irina T

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バージョン:

  • アンインストール古いJavaバージョン:コントロールパネル メインページ)プログラム-プログラムのアンインストール
  • ---(download Java手動ダウンロードページ に移動します。(リンクが機能しない場合はGoogle)自動ダウンロードを行わないでください。あなたとは異なるバージョンを取得する可能性があります。ブラウザに応じて、必要に応じて。
  • ダウンロードwindows offline 64-bitもう一度オンラインでやってはいけません。ブラウザを見て32ビットか64ビットかを決定します。
  • インストーラーを実行します。
  • Javaをインストールした後、パスと環境変数を確認し、それに応じて調整します(Windows Server 2012の場合:[コントロールパネル]-[システムとセキュリティ]-[システム]-[設定の変更]-[詳細]-[環境変数])-コマンドプロンプトを再度開きます。パスと環境変数を再度確認し、上記のテストを実行します。
0