`

java.lang.ClassFormatError: Illegal class name "[L[Ljava/lang/String;;" in clas

 
阅读更多

tomcat启动后,报

End CacheManager init
Exception in thread "CACHEDDAOFACTORY_INIT2" java.lang.ClassFormatError: Illegal class name "[L[Ljava/lang/String;;" in class file com/huawei/iread/portal/engine/PortalEngine
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
        at com.huawei.iread.cache.inittask.MarketingAdaptingRuleInitTask.run(MarketingAdaptingRuleInitTask.java:55)
        at com.huawei.uniportal.utilities.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)
        at java.lang.Thread.run(Thread.java:662)

 

 

很纠结,什么都没改啊,就弄了几个类。

未果,上网查询后,需要配置一个参数。

好吧,配就配吧。

找到catalina.sh

加上-Xverify:none这个参数

 

JAVA_OPTS="$JAVA_OPTS -server -Xmn1024M -Xms2048M -Xmx2048M -Xverify:none -Djava.net.preferIPv4Stack=true  -Djava.awt.headless=true -XX:PermSize=512M -XX:MaxPermSize=512M  -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSPermGenSweepingEnabled  -XX:+CMSClassUnloadingEnabled -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=90 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:gc.log -XX:+PrintGCDetails -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=39091 -Dcom.sun.management.jmxremote.ssl=false"

 

OK 解决。

 

但是不想就这么解决啊。

 

 

最后猜测为该文件PortalEngine.java编译问题或者编译版本问题。因为当时使用tomcat发布之后,在webapps下class目录下取的。

故用本工程的build.xml进行编译。

将两个class文件进行对比,在编译上的确有某些差异。当然无法确定这就是最终问题的所在。

最后用jdk6.0  换build.xml进行编译,实际上这里也就是javac的命令了。打包完成之后,搞定。

虽然搞定了,但是无法知道到底什么原因,牵强的解释为编译问题吧。

 

 

 

 

分享到:
评论
1 楼 lijunwyf41 2014-03-10  
如果是windows系统应该怎么修改?

相关推荐

    jbuilder 2006 j2me ALERT: java/lang/ClassFormatError: Bad version information.

    在Java开发领域,`java.lang.ClassFormatError: Bad version information`是一个常见的错误,通常发生在尝试加载或执行不兼容的字节码时。这个错误表明Java虚拟机(JVM)遇到了一个它无法识别或者处理的类文件版本。...

    ALERT: java/lang/ClassFormatError: Bad version information.

    在Java编程环境中,"ALERT: java/lang/ClassFormatError: Bad version information."是一个常见的错误提示,这通常意味着你的程序尝试加载一个与当前运行时环境不兼容的类文件。这个错误通常涉及到Java类版本的问题...

    常见的java异常.pdf

    10. **java.lang.ClassFormatError**: 表示从类文件读取的数据格式不符合Java类的规范。检查类文件是否损坏或由非Java编译器生成。 11. **java.lang.Error**: Error是所有错误的基类,通常表示严重的问题,如...

    java常见异常.pdf

    14. **java.lang.ClassCircularityError** 和 **java.lang.ClassFormatError**: 这些属于更底层的错误,通常与类加载和类文件格式有关。它们可能是由于类的编译或打包问题导致的。 了解和正确处理这些异常对于编写...

    java异常详解

    - **`java.lang.ClassFormatError`**:当类文件格式不正确时抛出。 - **`java.lang.OutOfMemoryError`**:当JVM无法申请足够的内存时抛出。 - **`java.lang.StackOverflowError`**:当栈溢出时抛出,通常由无限递归...

    JAVA常见异常解析

    12. **java.lang.AbstractMethodError**、**java.lang.AssertionError**、**java.lang.ClassCircularityError**、**java.lang.ClassFormatError**等: 这些是更底层的运行时错误,通常表明程序中存在严重的问题,如...

    java 异常种类总结【转】.docx

    java.lang.ClassFormatError 是一种类格式错误,指的是在程序中类的格式不正确时抛出的异常。 17. java.lang.Error 错误 java.lang.Error 是一种错误,指的是在程序中出现严重的程序运行问题时抛出的异常。 18. ...

    Java的异常类

    - **`java.lang.ClassFormatError`**:当JVM尝试读取不符合Java类格式的有效文件时抛出。 - **`java.lang.Error`**:表示严重问题,通常不应该被捕获,例如JVM内部错误或资源耗尽。 - **`java.lang....

    Java异常大全

    - **`java.lang.ClassFormatError`**:类文件格式错误时抛出。 - **`java.lang.OutOfMemoryError`**:内存不足时抛出。 - **`java.lang.StackOverflowError`**:栈溢出时抛出。 - **`java.lang....

    Java 运行后的错误报告

    - **`java.lang.ClassFormatError`**:类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。 - **`java.lang.Error`**:错误基类,用于标识严重的程序运行问题。 -...

    java 异常总结

    ### Java异常总结与详解 #### 引言 在Java编程中,异常处理是软件开发过程中不可或缺的一部分。良好的异常处理能够帮助我们及时发现并解决问题,从而提高程序的稳定性和健壮性。本文旨在全面总结Java中常见的异常...

    Java核心API需要掌握的程度

    Java的核心API主要集中在`java.lang`包中,包含了大量常用的基础类,这些类为Java程序提供了基本的操作能力。以下是对`java.lang`包中部分重要类的介绍: 1. **Object**:所有类的基类,提供了一些基本方法如`...

    java异常exception

    ### Java异常详解 #### 1. `java.lang.NullPointerException` `NullPointerException`是当程序尝试访问一个为`null`的对象实例的字段、调用其方法或构造函数时抛出的异常。这种异常通常发生在程序员错误地假设某个...

    ReadOnlyBufferException.rar_Code Name

    这个文件涉及的是Java中的`Class.forName()`方法。这个方法用于动态加载类到Java虚拟机(JVM)中。它接受一个字符串参数,该字符串是待加载类的全名(包括包名)。`Class.forName()`在运行时可以增加程序的灵活性,...

    总结了java容易出错的信息 以及错误信息类型

    16. **ClassFormatError** - 类文件格式不正确,Java虚拟机无法解析时,会抛出此错误。 17. **Error** - 是所有错误的基类,表示严重的问题,通常不应由应用程序捕获。 18. **ExceptionInInitializerError** - 在...

    Java开发过程中常见异常

    16. **类格式错误:ClassFormatError** - 当读取的类文件格式不正确,无法被Java虚拟机识别时,会抛出此异常。 17. **错误:Error** - 表示严重的运行时问题,通常不应该被捕获,而是需要立即终止程序。例如,`...

    Java常见异常.pdf

    Java异常处理是编程中至关重要的一个部分,它帮助开发者识别并处理程序运行时可能出现的问题。在Java中,异常被组织成一个层次结构,根类是`Throwable`,它有两个主要的子类:`Error`和`Exception`。`Error`通常用于...

Global site tag (gtag.js) - Google Analytics