org.Eclipse.jdt.internal.compiler.classfmt.ClassFormatException
at org.Eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>(ClassFileReader.Java:372)
at org.Apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.Java:232)
at org.Apache.jasper.compiler.JDTCompiler$1.findType(JDTCompiler.Java:188)
at org.Eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.Java:113)
at org.Eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.Java:49)
at org.Eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.Java:122)
at org.Eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.Java:1335)
at org.Eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromVariantTypeSignature(LookupEnvironment.Java:1391)
at org.Eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeArgumentsFromSignature(LookupEnvironment.Java:1172)
at org.Eclipse.jdt.internal.compiler.lookup.LookupEnvironment.getTypeFromTypeSignature(LookupEnvironment.Java:1340)
at org.Eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethod(BinaryTypeBinding.Java:550)
at org.Eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.createMethods(BinaryTypeBinding.Java:630)
at org.Eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.cachePartsFrom(BinaryTypeBinding.Java:365)
at org.Eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.Java:688)
at org.Eclipse.jdt.internal.compiler.lookup.LookupEnvironment.createBinaryTypeFrom(LookupEnvironment.Java:667)
at org.Eclipse.jdt.internal.compiler.Compiler.accept(Compiler.Java:296)
at org.Eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.Java:118)
at org.Eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.Java:49)
at org.Eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.Java:122)
at org.Eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.Java:168)
at org.Eclipse.jdt.internal.compiler.lookup.Scope.getPackage(Scope.Java:2379)
at org.Eclipse.jdt.internal.compiler.ast.ParameterizedQualifiedTypeReference.internalResolveLeafType(ParameterizedQualifiedTypeReference.Java:138)
at org.Eclipse.jdt.internal.compiler.ast.ParameterizedQualifiedTypeReference.internalResolveType(ParameterizedQualifiedTypeReference.Java:132)
at org.Eclipse.jdt.internal.compiler.ast.ParameterizedQualifiedTypeReference.resolveType(ParameterizedQualifiedTypeReference.Java:351)
at org.Eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.resolveTypeFor(SourceTypeBinding.Java:1374)
at org.Eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.fields(SourceTypeBinding.Java:699)
at org.Eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.faultInTypesForFieldsAndMethods(SourceTypeBinding.Java:677)
at org.Eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.Java:469)
at org.Eclipse.jdt.internal.compiler.Compiler.process(Compiler.Java:756)
at org.Eclipse.jdt.internal.compiler.Compiler.compile(Compiler.Java:468)
at org.Apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.Java:459)
at org.Apache.jasper.compiler.Compiler.compile(Compiler.Java:378)
at org.Apache.jasper.compiler.Compiler.compile(Compiler.Java:353)
at org.Apache.jasper.compiler.Compiler.compile(Compiler.Java:340)
at org.Apache.jasper.JspCompilationContext.compile(JspCompilationContext.Java:646)
at org.Apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.Java:357)
at org.Apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.Java:390)
at org.Apache.jasper.servlet.JspServlet.service(JspServlet.Java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.Java:728)
at org.Apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.Java:305)
at org.Apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.Java:210)
at org.Apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.Java:222)
at org.Apache.catalina.core.StandardContextValve.invoke(StandardContextValve.Java:123)
at org.Apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.Java:472)
at org.Apache.catalina.core.StandardHostValve.invoke(StandardHostValve.Java:171)
at org.Apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.Java:99)
at org.Apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.Java:931)
at org.Apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.Java:118)
at org.Apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.Java:407)
at org.Apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.Java:1004)
at org.Apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.Java:589)
at org.Apache.Tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.Java:310)
at Java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at Java.lang.Thread.run(Unknown Source)
Apache Tomcat/7.0.33、Eclipse-jee-kepler-SR1-RC3-win32を使用しています
ヒントをありがとう! Tomcat 6.0.20およびJDK1.8で同じClassFormatExceptionエラーが発生しました。 jasper-jdt.jarをecj-4.2.2.jarに置き換え、すべてのJSPが再びコンパイル/動作します。
この問題はecjバージョン(ecj-3.7.2.jar)に関連しているため、jdk8と互換性のある最新バージョンのTomcatを使用する必要があります(Apache-Tomcat-7.0.68は正常に機能します)
次の手順で問題が解決することを願っています。
1)Tomcatを停止します。
2)このecj-4.2.2.jarをダウンロード link
3)Tomcatのlibフォルダーの下にecj-4.2.2.jarをコピーします(例-C:\ Apache-Tomcat-6.0.36\lib)。
4)ecj-3.7.2.jarの名前をold_ecj-3.7.2.jarに変更します。
5)Tomcatを起動します。
Mavenとjdk8を使用してTomcat7を起動する場合は、Tomcat7-maven-plugin
は少なくとも2.2
既存のlocalhostサーバーを削除し、新しいサーバーを追加します。これで問題が解決します。
Java 8.でTomcat 6を使用して同じ問題が発生しました。8の代わりにJava 7:Add export Java_HOME=/usr/lib/jvm/Java-7-Oracle
あなたの{Tomcat-home}/bin/catalina.sh
またはカスタムスタートアップスクリプト。
Tomcatバージョンを確認します。Tomcatバージョン7.0.29以前の場合は、古いTomcatを削除して最新のものをダウンロードします。そしてプロジェクトを実行します https://Tomcat.Apache.org/download-90.cgi
Java 8を使用している場合は、Eclipseバージョンを更新する必要があります。
スタックトレースの情報を見ると、組み込みのEclipseコンパイラにjavacではなく使用するコンパイルの問題があるようです。 EclipseのすべてのLunaビルドはjdk 8をサポートしていますが、Eclipse Keplerを使用していると述べたように、jdk 8をサポートするにはEclipseコミュニティ自体から機能パッチをダウンロードする必要があります。
その間、jdk 7を使用してプロジェクトを再コンパイルできます。エラーが消えるかどうかを確認します。それ以外の点では、コードは私には問題ありません。役に立てば幸いです。お力になれて、嬉しいです。
私もこの解決策を見つけることができた多くの記事を検索した後、同じ問題に直面しました
使用しているTomcatのバージョン。
次に、Java 8の場合、Java 8をサポートするEclipse ECJコンパイラのバージョンを使用する必要があります。
「ClassFormatException」は、おそらくECJのバージョンがJava 8についてまったく知らないことを意味します。
このTomcatバージョンをサポートしていないため、jreの新しいバージョンを古いバージョンに変更します。
Tomcat 6はJava 1.5で実行できる必要がありますが、現在のECJリリースでは最小Java 6。
Tomcat Usersメーリングリストのアーカイブを参照し、質問がある場合はメーリングリストで質問してください。 (Bugzillaはサポートフォーラムではありません)。
この問題は、jdk、Tomcat、Eclipseとの互換性の問題が原因で発生します。この問題を解決するには、Apache Tomcat 8.0でjdk ver 1.8を使用し、Eclipse Mars 2.0を更新します。
Apache Tomcat 7.0でも同じ問題があります。
すべてを再構成すると、問題が解決します。