报错为:Exception in thread "main" java.lang.NoClassDefFoundError:MyExcel(wrong name:myexcel/MyExcel)
 at java.lang.ClassLoader.defineClass0<Native Method>
 ...

解决方案 »

  1.   

    因为它调用了dll的文件,而你没有加载的原因,在她环境里面可以,是因为已经有了哪些dll文件
      

  2.   

    加上包名 java myexcel.MyExcel
      

  3.   

    to:hejlmost() ( ):加上包名还是不行。to:hdhmail2000(禅剑飞雪) 怎么样才能实现呢。如何加载dll文件呢?
      

  4.   

    如果是 d:\workspace\myexcel\MyExcel.class 
    那么要在d:\workspace路径下运行 java myexcel.MyExcel
      

  5.   

    at java.lang.ClassLoader.defineClass0<Native Method>
    这个错误就完全可以确定是没有dll文件的问题
    关键你要看这个dll文件在哪儿了,然后靠到这个类这里就可以了
    你最好把源代码贴出来
    还有阿,兄弟我每次帮你你的分数都是平均的。
      

  6.   

    代码如下:
    package myexcel;import jxl.*;
    import jxl.format.UnderlineStyle;
    import jxl.write.*;
    import jxl.write.Number;
    import jxl.write.Boolean;
    import java.io.*;
    import java.util.*;
    import myBean.*;
    import java.io.File;
    import org.apache.log4j.Level;
    import org.apache.log4j.Logger;
    import org.apache.log4j.PatternLayout;
    import org.apache.log4j.RollingFileAppender;
    import org.apache.log4j.*;
    public class MyExcel {
    /**
         * 读取Excel
         * @param filePath
         */
    static final Logger logger = (Logger) Logger.getLogger(MyExcel.class);

        public ArrayList readExcel(String filePath)
        {
         ArrayList _myExA=new ArrayList();
         PropertyConfigurator.configure("D:\\project\\mytree\\WebRoot\\log4j.properties");
         logger.setLevel ( ( Level ) Level.DEBUG ) ;
            try
            {
                InputStream is = new FileInputStream(filePath);
                //add for log4j: log a message with the info level
                logger.info("文件加入成功");
                Workbook rwb = Workbook.getWorkbook(is);
                //Sheet st = rwb.getSheet("0")这里有两种方法获取sheet表,1为名字,而为下标,从0开始
                Sheet st = rwb.getSheet(0);
               // Cell c00 = st.getCell(0,1);
                int myCol=st.getColumns();
               //add for log4j: log a message with the info level
                logger.info("列数:"+myCol);
                //定义一个MyBean的数组,长度为myCol
                int myR=st.getRows();
                //add for log4j: log a message with the info level
                logger.info("行数:"+myR);
                for (int j=0;j<myR;j++){
                 MyBean[] StrMyBean=new MyBean[myCol];
                 for(int i=0;i<myCol;i++){
                    Cell c=st.getCell(i,j);            
                    //通用的获取cell值的方式,返回字符串
                    String strc = c.getContents();
                    //写入到StrMyBean数组中
                    MyBean _myB=new MyBean();                
                    _myB.setvalue(strc);
                    StrMyBean[i]=_myB;              
                    //System.out.print(StrMyBean[0].getvalue()+" ");                           
                 }
                _myExA.add(StrMyBean);
                //System.out.println(((MyBean[])(_myExA.get(j)))[3].getvalue());
                }
                //add for log4j: log a message with the info level
                logger.info("数据倒入到ArrayList。");
                //关闭
                rwb.close();
                //显示存放在ArrayList中的值是否正确
                for(int i=0;i<_myExA.size();i++){
                 MyBean[] myB=(MyBean[])(_myExA.get(i));
                 for(int j=0;j<myB.length;j++){
                 System.out.print(myB[j].getvalue()+" ");
                 }
                System.out.println();
                }        
            }
            catch(Exception e)
            {
                //add for log4j: log a message with the error level
                logger.error ( "Server constructor IOException: " + e ) ;            e.printStackTrace();
            }
            return _myExA;
        }
    public static void main(String[] args){
    MyExcel _myE=new MyExcel();
    _myE.readExcel("D:/project/mytree/WebRoot/people.xls");

    }
    }
    在MyEclipse里面运行正常,excel装了
      

  7.   

    初步确定你的jxl包没有在classpath里面设置
    建议你用fatjar包导出,很方便的,不用再设置classpath
      

  8.   

    用fatjar导出后再如何操作呢?在dos命令下面怎么用呢?
      

  9.   

    java -classpath [这里放入所有引用的类]
      

  10.   

    to:gujianxin(木头象)   不明白你所说的是什么,能说清楚一点吗
      

  11.   

    用fatjar导出jar包,然后用javaw xxx就运行了
      

  12.   

    to:hdhmail2000(禅剑飞雪) 我用了fatjar导出功能,它好像是把整个工程全部打成.jar 了啊!但现在的情况是工程里面有多个包和多个类,javaw 怎么指定到所要运行的具体的那个类上面去呢?
      

  13.   

    解决!!!方法,在"Package-Explorer" 里面右键点击你的工程,在下拉框中选择选择 "+ Build Fat Jar".出现配制选项界面。在这里面有个“Main-Class:”,这这里面选中你想要运行的类,然后完成即可。
    文件 "mytree_fat.jar" 已经在工程根目录下生成了
    并且文件用来保存配置的以".fatjar"结尾的文件也在工程根目录下生成了.
    生成的jar文件包含它所引用的jar包(mytree_fat.jar)的所有类和它本身的工程类.
    这个文件可用在任何地方执行, 免设置classpath变量, 因为所有必须的类库都萃取到"Fat Jar":中了:最后就可以在dos环境下面执行命令(格式如下):> java -jar mytree_fat.jar
     
      

  14.   

    Eclipse插件FatJar安装与使用 
    今天启动tomcat发现特别慢,得等1分多钟才启动完,这才想起来,我把WEB-INFO/lib/struts.jar , pager-tag.jar都删除了,取而代之的是他们的源码,tomcat启动的时候因为找不到jar文件就要重新编译,所以特别地慢。因此,我把struts.jar拷贝到WEB-INFO/lib下了,现在缺pager-tag.jar了。(其实pager-tag的源码编译不慢,主要是struts源码编译比较慢)我找了一下把程序打包的工具,其实eclipse自己带了一个export工具可以打包,你的项目=〉export=>jar file=>然后挨个选择你需要的包=〉写好目标jar文件名=〉写好目标目录=〉就生成新jar了。其实这样已经能够满足我的要求了,查看Eclipse如何打包的过程中我发现有个fatjar插件功能更强些,可以把需要的资源打进一个jar里。所以下载了一个,下载地址:http://sourceforge.net/project/showfiles.php?group_id=115990&package_id=125924 
    解压缩后是一个.../plugins/(net...)把plugins下面的(net..)文件夹拷贝到eclipse的plugins下,重新启动Eclipse3.1,Windows=>prefernce=>fat jar preference看到他就说明已经安装成功了。如果没有看到,没有关系,删除D:\eclipse310\configuration\org.eclipse.update\platform.xml文件(此文件可以自动生成)不用担心以前的插件会因此而消失,没事。刚开始找不到如何使用它,后来看到你的项目=〉Export..=>向导里有fat jar =>使用起来真的很方便。总结:
        一般把src打包export=>Jar File 即可。
        想把src附属的资源一起打包,必须使用FatJar => export..=>FatJar.Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=492760
    http://blog.csdn.net/srx/archive/2005/09/30/492760.aspx