34

Tomcat を実行しようとすると、次のエラーが発生します。

"java.lang.UnsatisfiedLinkError: C:\Program Files (x86)\apache-tomcat-7.0.34\bin\tcnative-1.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform".

ただし、64 ビット JRE をダウンロードし、Java バージョンを再確認しました。

C:\Program Files (x86)\apache-tomcat-7.0.34\bin>java -version
java version "1.7.0_10"
Java(TM) SE Runtime Environment (build 1.7.0_10-b18)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

以前にこの質問を見たことがありますが、1 つは解決策がなく、もう 1 つは Eclipse の問題でしたが、Tomcat に直接アクセスするとこのエラーが発生します。

どの「IA 32 ビット プラットフォーム」が検出されているかを調べる方法と、Tomcat を正しい方向に向ける方法を教えてください。また、これが私のサーブレットが Eclipse を介してこの 404 エラーを受け取る理由でしょうか?

タイプ ステータス レポート

メッセージ /JSPandServlet/Controller

説明 要求されたリソースは利用できません。

ログ:

C:\Program Files (x86)\apache-tomcat-7.0.34\bin>configtest.bat
Using CATALINA_BASE:   "C:\Program Files (x86)\apache-tomcat-7.0.34"
Using CATALINA_HOME:   "C:\Program Files (x86)\apache-tomcat-7.0.34"
Using CATALINA_TMPDIR: "C:\Program Files (x86)\apache-tomcat-7.0.34\temp"
Using JRE_HOME:        "C:\Program Files (x86)\Java\jre7"
Using CLASSPATH:       "C:\Program Files (x86)\apache-tomcat- 
7.0.34\bin\bootstrap.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: Can't load AMD 64-bit .dll on a IA 32-bit platform
    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)
Dec 26, 2012 7:15:47 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the 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)\Windows Live\Shared;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\SourceGear\Common\DiffMerge\;C:\Ruby193\bin;.
Dec 26, 2012 7:15:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Dec 26, 2012 7:15:47 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Dec 26, 2012 7:15:47 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 448 ms
4

9 に答える 9

26

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

于 2012-12-31T04:12:39.093 に答える
9

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

于 2013-07-12T13:07:37.263 に答える
0

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

于 2013-02-14T22:39:30.423 に答える
0

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

于 2018-11-29T10:28:39.487 に答える