郁闷ing.....我到12000条还行,12000以上就内存溢出了.... 
我内存是1G,cpu   p4   3.0 
jsp+struts+tomcat+oracle 
点击按钮,用POI生成EXCEL,先从数据库查出数据,弹出对话框,保存生成EXCEL文件
只能生成12000的数据多了就内存溢出,不知道是怎么回事???
哪位大侠有处理这方面的经验吗???
如果用多个SHEET应该怎样判断??并把数据分开?
在找了个网上的jvm配置,加上去也没管用...哎,晕啊... 
JAVA_OPTS="-server   -Xms800m   -Xmx800m     -XX:PermSize=64M   -XX:MaxNewSize=256m   -XX:MaxPermSize=128m   -Djava.awt.headless=true   

解决方案 »

  1.   

    我的硬件和lz区别不大
    我刚才试验了下 用的一个15000+条数据的表 11列
    导出到excel的一个sheet里 几秒时间而已
    我觉得lz是poi操作excel部分有问题
      

  2.   

    请问你最大数据是多少条,我曾经做过100W条数据测试用多线程写进数据库,然后在提取出来保存在EXCEL EXCLE最大支持6W多条数据,而当时我写进数据库最大只能支持87W条,没有达到100W条,然后就报JAVA虚礼机内存出错,JAVA虚礼内存默认设置是128M,我当时的机器配置比你这个还有差
      

  3.   

    我的只是不是直接生成EXCEL文件,而是弹出保存对话框
    而且条件的判断很多,IF语句
    在excelAction里调的DAO对数据处理,并反回wd(POI的对象)
    我的JDK是1.4的,tomcat是5.0的
    不知道是不是这个问题???
      

  4.   

    我也遇到过.和你类似我也去网上找了命令去修改内存JAVA_OPTS="-server       -Xms800m       -Xmx800m           -XX:PermSize=64M       -XX:MaxNewSize=256m       -XX:MaxPermSize=128m       -Djava.awt.headless=true       .不过不好用呵呵.
    后来我是修改的TOMCATE内存来解决的.
    tomcat的启动程序是包装过的,不能直接使用java -X..... tomcat.*来改变内存的设置。在Tomcat在改变这个设置
    有两种方法:
    1.    就需要在环境变量中加上TOMCAT_OPTS, CATALINA_OPTS两个属性,
            如 SET  CATALINA_OPTS= -Xms64m -Xmx512m;
            ms是最小的,mx是最大,64m, 512m分别是指内存的容量.2.    修改Catalina.bat文件
           在166行“rem Execute Java with the applicable properties ”以下每行
    %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION% 中的%CATALINA_OPTS% 替换成-Xms64m -Xmx512m
      

  5.   


    JSP文件报的错
    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Servlet execution threw an exception
    root cause java.lang.OutOfMemoryError
    note The full stack trace of the root cause is available in the Tomcat logs.
    --------------------------------------------------------------------------------Apache Tomcat/5.0.16
    JAVA ACTION 的代码:import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class xxxAction extends Action {

    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {

    String temp="";
    Dao ldao=new Dao();
    Datime datetime=new Datime();
    String tname="XXX";
    String mcode="exception";
    StringUtil isnul=new StringUtil();

    String date=request.getParameter("XXX");
    String date2=request.getParameter("XXX2");
    String cdate="";
    String[] checks=request.getParameterValues("checkbox");
    System.out.println(checks);

    String XXX=request.getParameter("XXX");
    String XXX=request.getParameter("XXX");
    String XXX=request.getParameter("XXX");
    String XXX=request.getParameter("XX");
    String XX="";
    String XXX1=request.getParameter("XXX1");
    String XXX2=request.getParameter("XXX2");
    String XXX3=request.getParameter("XXX3");
    String XXX4=request.getParameter("XXX4");
    String XXX = null;
    String uid="2"; String sqlXXX="(XXX="+XXX1+" or XXX="+XXX2+" or XXX="+XXX3+" or XXX="+XXX4+")";
    String datsql="to_date(to_char(Year)|| to_char(lpad(month, 2, '0')) || to_char(lpad(day, 2, '0')), 'YYYYMMDD')";

    String sc="";

    //判断JSP中的条件文本框
    if(!isnul.isNull(XXX)&&!isnul.isNull(XXX)&&!isnul.isNull(XXX)&&!isnul.isNull(XXX)){

    if(isnul.isNull(xxx)||isnul.isNull(xxx2)&&isnul.isNull(xx1)&&isnul.isNull(xx2)&&isnul.isNull(xx3)&&isnul.isNull(xx4)){
    mcode="exception";
    }
    if(checks==null){
    mcode="exception";
    System.out.println("-checks空-");

    }
    else{

    if(!isnul.isNull(XXX1)||!isnul.isNull(XXX2)||!isnul.isNull(XXX3)||!isnul.isNull(xxx4)){
    xx=",XXX";
    }
    else{
    xx="";
    } if(!isnul.isNull(XXX)&&!isnul.isNull(XXX)&&!isnul.isNull(XXX)&&!isnul.isNull(XXX)){
    xx=",XXX,XXX";
    }
    else{
    xx="";
    }
    if(!isnul.isNull(XXX)&&!isnul.isNull(XXX2)){
    xx=",Y,M,D";
    }
    else{
    xx="";
    }

    temp=XXX+cdate+XXX;

    //判断checkbox和其它是否为空
    String scheck="";
    if(checks!=null){

    for(int i=0;i<checks.length;i++){

    scheck+=(checks[i]+",");
    }
    sc=scheck.substring(0,scheck.length()-1)+temp;
    //得到CHECKBOX
    }

    try{ StringBuffer sb2=new StringBuffer();
    String sqltude="(XXX >="+XXX+" and XXX <"+XXX+") and (XXX >="+XXX+" and XXX <"+XXX+")";
    String sql = "select "+sc+" from "+tname+" where "+XXX+" and ("+datsql+" between to_date('"+XXX+"', 'YYYY-MM-DD') and to_date('"+XXX2+"', 'YYYY-MM-DD')) and "+sqlXX;
    String sqlcount="select count(*) from "+tname+" where "+sqlXXX+" and ("+datsql+" between to_date('"+XXX+"', 'YYYY-MM-DD') and to_date('"+XXX2+"', 'YYYY-MM-DD')) and "+sqlXX;

    long acount=ldao.getcount(sqlcount);//得到行数
    sb2.append(sql);
    if(ldao.getlist(sb2.toString())!=null){//判断有无记录
    if(acount>65535){//判断行
    mcode="counterror";
    }
    else{
    HSSFWorkbook wb2=ldao.getlist(sb2.toString());//得到wb2对象
    response.setContentType("Application/ms-excel");

    response.setHeader("Content-Disposition","attachment;filename="+"XXXFileName"+".xls");
    OutputStream os=response.getOutputStream();
    wb2.write(os);
    os.flush();
    os.close();
    //增加日志
    String sXXX="";
    if(isnul.isNull(XXX1)){
    XXX1="";

    }
    if(isnul.isNull(XXX2)){
    XXX2="";

    }
    if(isnul.isNull(XXX3)){
    XXX3="";
    }
    if(isnul.isNull(XXX4)){
    hour4="";
    }
    shour=XXX1+"-"+XXX2+"-"+XXX3+"-"+XXX4; String adate="to_date('"+Xdate+"', 'yyyy-mm-dd'),to_date('"+Xdate2+"', 'yyyy-mm-dd')";
    String ndate="to_date('"+datetime.getDatime()+"', 'yyyy-mm-dd hh24:mi:ss')";
    String asql = "insert into zl_download (XXXX,XXX,XXXX,等 ) values("+aXXX+",'"+sXXX+"','"+XXX+"','"+XXX+"','"+XXX+"','"+XXX+"',"+XXX+",'"+uid+"','XXX')";

    ldao.addLog(asql);

    mcode="excelaction";
    }//记录长度else
    }
    else{
    mcode="exception";
    }

    }//try
    catch (Exception e1) {
             e1.printStackTrace();
        }

    }//第一个if里的第一个else

    }//第一个if

    else{

    mcode="exception";

    }

    System.out.println(mcode);
    return mapping.findForward(mcode);

    }//方法结束}内存溢不知该如何处理(我会去试下fengran22的方法,谢谢)??可以指定记录数新建sheet再把后面的记录加进去吗?
      

  6.   

    刚刚试了下fengran22的方法,没行...晕..1楼说的15000+的表11列,我试了
    行数和列数都占内存,我用11列试了下,可以到25000行
    但我的列数是33列,都加上就会溢出.能不能将它设定到10000条就新建个SHEET,把后面的加进去??
      

  7.   

    你是用第2种方法弄的么?我用第2种方法弄了下就OK了.这个论坛以前出现过你这类似的问题.好像是创建一个EXCEL,然后根据判断条数就增加一个SHEET方法解决的.你在这论坛搜索下.
      

  8.   

    这个是我 TOMCATE Catalina.bat文件 @echo off
    if "%OS%" == "Windows_NT" setlocal
    rem ---------------------------------------------------------------------------
    rem Start/Stop Script for the CATALINA Server
    rem  
    rem Environment Variable Prequisites
    rem
    rem   CATALINA_HOME   May point at your Catalina "build" directory.
    rem
    rem   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions
    rem                   of a Catalina installation.  If not present, resolves to
    rem                   the same directory that CATALINA_HOME points to.
    rem
    rem   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
    rem                   "stop", or "run" command is executed.
    rem
    rem   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
    rem                   the JVM should use (java.io.tmpdir).  Defaults to
    rem                   %CATALINA_BASE%\temp.
    rem
    rem   JAVA_HOME       Must point at your Java Development Kit installation.
    rem
    rem   JAVA_OPTS       (Optional) Java runtime options used when the "start",
    rem                   "stop", or "run" command is executed.
    rem
    rem   JSSE_HOME       (Optional) May point at your Java Secure Sockets Extension
    rem                   (JSSE) installation, whose JAR files will be added to the
    rem                   system class path used to start Tomcat.
    rem
    rem   JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"
    rem                   command is executed. The default is "dt_shmem".
    rem
    rem   JPDA_ADDRESS    (Optional) Java runtime options used when the "jpda start"
    rem                   command is executed. The default is "jdbconn".
    rem
    rem $Id: catalina.bat,v 1.29 2002/04/01 19:51:31 patrickl Exp $
    rem ---------------------------------------------------------------------------
     set    JAVA_OPTS=%JAVA_OPTS%     -Xms256M       -Xmx800M 
    rem Guess CATALINA_HOME if not defined
    if not "%CATALINA_HOME%" == "" goto gotHome
    set CATALINA_HOME=.
    if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
    set CATALINA_HOME=..
    :gotHome
    if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
    echo The CATALINA_HOME environment variable is not defined correctly
    echo This environment variable is needed to run this program
    goto end
    :okHome
     set    JAVA_OPTS=%JAVA_OPTS%     -Xms256M       -Xmx800M 
    rem Get standard environment variables
    if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"
    rem Get standard Java environment variables
    if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath
    echo Cannot find %CATALINA_HOME%\bin\setclasspath.bat
    echo This file is needed to run this program
    goto end
    :okSetclasspath
    set BASEDIR=%CATALINA_HOME%
    call "%CATALINA_HOME%\bin\setclasspath.bat"rem Add on extra jar files to CLASSPATH
    if "%JSSE_HOME%" == "" goto noJsse
    set CLASSPATH=%CLASSPATH%;%JSSE_HOME%\lib\jcert.jar;%JSSE_HOME%\lib\jnet.jar;%JSSE_HOME%\lib\jsse.jar
    :noJsse
    set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jarif not "%CATALINA_BASE%" == "" goto gotBase
    set CATALINA_BASE=%CATALINA_HOME%
    :gotBaseif not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
    set CATALINA_TMPDIR=%CATALINA_BASE%\temp
    :gotTmpdirrem ----- Execute The Requested Command ---------------------------------------echo Using CATALINA_BASE:   %CATALINA_BASE%
    echo Using CATALINA_HOME:   %CATALINA_HOME%
    echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
    echo Using JAVA_HOME:       %JAVA_HOME%set _EXECJAVA=%_RUNJAVA%
    set MAINCLASS=org.apache.catalina.startup.Bootstrap
    set ACTION=start
    set SECURITY_POLICY_FILE=
    set DEBUG_OPTS=
    set JPDA=if not ""%1"" == ""jpda"" goto noJpda
    set JPDA=jpda
    if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport
    set JPDA_TRANSPORT=dt_shmem
    :gotJpdaTransport
    if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
    set JPDA_ADDRESS=jdbconn
    :gotJpdaAddress
    shift
    :noJpdaif ""%1"" == ""debug"" goto doDebug
    if ""%1"" == ""embedded"" goto doEmbedded
    if ""%1"" == ""run"" goto doRun
    if ""%1"" == ""start"" goto doStart
    if ""%1"" == ""stop"" goto doStopecho Usage:  catalina ( commands ... )
    echo commands:
    echo   debug             Start Catalina in a debugger
    echo   debug -security   Debug Catalina with a security manager
    echo   embedded          Start Catalina in embedded mode
    echo   jpda start        Start Catalina under JPDA debugger
    echo   run               Start Catalina in the current window
    echo   run -security     Start in the current window with security manager
    echo   start             Start Catalina in a separate window
    echo   start -security   Start in a separate window with security manager
    echo   stop              Stop Catalina
    goto end:doDebug
    shift
    set _EXECJAVA=%_RUNJDB%
    set DEBUG_OPTS=-sourcepath "%CATALINA_HOME%\..\..\jakarta-tomcat-4.0\catalina\src\share"
    if not ""%1"" == ""-security"" goto execCmd
    shift
    echo Using Security Manager
    set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
    goto execCmd:doEmbedded
    shift
    set MAINCLASS=org.apache.catalina.startup.Embedded
    goto execCmd:doRun
    shift
    if not ""%1"" == ""-security"" goto execCmd
    shift
    echo Using Security Manager
    set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
    goto execCmd:doStart
    shift
    if not "%OS%" == "Windows_NT" goto noTitle
    set _EXECJAVA=start "Tomcat" %_RUNJAVA%
    goto gotTitle
    :noTitle
    set _EXECJAVA=start %_RUNJAVA%
    :gotTitle
    if not ""%1"" == ""-security"" goto execCmd
    shift
    echo Using Security Manager
    set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
    goto execCmd:doStop
    shift
    set ACTION=stop
    goto execCmd:execCmd
    rem Get remaining unshifted command line arguments and save them in the
    set CMD_LINE_ARGS=
    :setArgs
    if ""%1""=="""" goto doneSetArgs
    set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
    shift
    goto setArgs
    :doneSetArgsrem Execute Java with the applicable properties
    if not "%JPDA%" == "" goto doJpda
    if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
    %_EXECJAVA% %JAVA_OPTS% -Xms64m -Xmx512m %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
    goto end
    :doSecurity
    %_EXECJAVA% %JAVA_OPTS% -Xms64m -Xmx512m %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
    goto end
    :doJpda
    if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
    %_EXECJAVA% %JAVA_OPTS% -Xms64m -Xmx512m -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
    goto end
    :doSecurityJpda
    %_EXECJAVA% %JAVA_OPTS% -Xms64m -Xmx512m -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=n %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
    goto end:end
      

  9.   

    谢谢,创建SHEET的我搞出来了,挺简单的
    就剩内存溢出的问题了....
    我也是按第二种方法走的.....加上33个字段17000条记录,就出错...
    晕,是不是要加内存啊.....
      

  10.   

    你那块 找的 设置内存那块 写错了,看我的 bat 文件 catalina.bat
    @echo off
    if "%OS%" == "Windows_NT" setlocal
    rem ---------------------------------------------------------------------------
    rem Start/Stop Script for the CATALINA Server
    rem
    rem Environment Variable Prequisites
    rem
    rem   CATALINA_HOME   May point at your Catalina "build" directory.
    rem
    rem   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions
    rem                   of a Catalina installation.  If not present, resolves to
    rem                   the same directory that CATALINA_HOME points to.
    rem
    rem   CATALINA_OPTS   (Optional) Java runtime options used when the "start",
    rem                   or "run" command is executed.
    rem
    rem   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
    rem                   the JVM should use (java.io.tmpdir).  Defaults to
    rem                   %CATALINA_BASE%\temp.
    rem
    rem   JAVA_HOME       Must point at your Java Development Kit installation.
    rem                   Required to run the with the "debug" argument.
    rem
    rem   JRE_HOME        Must point at your Java Development Kit installation.
    rem                   Defaults to JAVA_HOME if empty.
    rem
    rem   JAVA_OPTS       (Optional) Java runtime options used when the "start",
    rem                   "stop", or "run" command is executed.
    rem
    rem   JSSE_HOME       (Optional) May point at your Java Secure Sockets Extension
    rem                   (JSSE) installation, whose JAR files will be added to the
    rem                   system class path used to start Tomcat.
    rem
    rem   JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"
    rem                   command is executed. The default is "dt_shmem".
    rem
    rem   JPDA_ADDRESS    (Optional) Java runtime options used when the "jpda start"
    rem                   command is executed. The default is "jdbconn".
    rem
    rem   JPDA_SUSPEND    (Optional) Java runtime options used when the "jpda start"
    rem                   command is executed. Specifies whether JVM should suspend
    rem                   execution immediately after startup. Default is "n".
    rem
    rem   JPDA_OPTS       (Optional) Java runtime options used when the "jpda start"
    rem                   command is executed. If used, JPDA_TRANSPORT, JPDA_ADDRESS,
    rem                   and JPDA_SUSPEND are ignored. Thus, all required jpda
    rem                   options MUST be specified. The default is:
    rem
    rem                   -Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,
    rem                       address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
    rem
    rem $Id: catalina.bat 498126 2007-01-20 15:38:39Z t $
    rem ---------------------------------------------------------------------------
      

  11.   


    rem Guess CATALINA_HOME if not defined
    set CURRENT_DIR=%cd%
    set JAVA_OPTS= -server  -Xms700M   -Xmx700M
    if not "%CATALINA_HOME%" == "" goto gotHome
    set CATALINA_HOME=%CURRENT_DIR%
    if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
    cd ..
    set CATALINA_HOME=%cd%
    cd %CURRENT_DIR%
    :gotHome
    if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
    echo The CATALINA_HOME environment variable is not defined correctly
    echo This environment variable is needed to run this program
    goto end
    :okHomerem Get standard environment variables
    if exist "%CATALINA_HOME%\bin\setenv.bat" call "%CATALINA_HOME%\bin\setenv.bat"rem Get standard Java environment variables
    if exist "%CATALINA_HOME%\bin\setclasspath.bat" goto okSetclasspath
    echo Cannot find %CATALINA_HOME%\bin\setclasspath.bat
    echo This file is needed to run this program
    goto end
    :okSetclasspath
    set BASEDIR=%CATALINA_HOME%
    call "%CATALINA_HOME%\bin\setclasspath.bat" %1
    if errorlevel 1 goto endrem Add on extra jar files to CLASSPATH
    if "%JSSE_HOME%" == "" goto noJsse
    set CLASSPATH=%CLASSPATH%;%JSSE_HOME%\lib\jcert.jar;%JSSE_HOME%\lib\jnet.jar;%JSSE_HOME%\lib\jsse.jar
    :noJsse
    set CLASSPATH=%CLASSPATH%;%CATALINA_HOME%\bin\bootstrap.jarif not "%CATALINA_BASE%" == "" goto gotBase
    set CATALINA_BASE=%CATALINA_HOME%
    :gotBaseif not "%CATALINA_TMPDIR%" == "" goto gotTmpdir
    set CATALINA_TMPDIR=%CATALINA_BASE%\temp
    :gotTmpdirif not exist "%CATALINA_HOME%\bin\tomcat-juli.jar" goto noJuli
    set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
    :noJulirem ----- Execute The Requested Command ---------------------------------------echo Using CATALINA_BASE:   %CATALINA_BASE%
    echo Using CATALINA_HOME:   %CATALINA_HOME%
    echo Using CATALINA_TMPDIR: %CATALINA_TMPDIR%
    if ""%1"" == ""debug"" goto use_jdk
    echo Using JRE_HOME:        %JRE_HOME%
    goto java_dir_displayed
    :use_jdk
    echo Using JAVA_HOME:       %JAVA_HOME%
    :java_dir_displayed
      

  12.   


    set _EXECJAVA=%_RUNJAVA%
    set MAINCLASS=org.apache.catalina.startup.Bootstrap
    set ACTION=start
    set SECURITY_POLICY_FILE=
    set DEBUG_OPTS=
    set JPDA=if not ""%1"" == ""jpda"" goto noJpda
    set JPDA=jpda
    if not "%JPDA_TRANSPORT%" == "" goto gotJpdaTransport
    set JPDA_TRANSPORT=dt_shmem
    :gotJpdaTransport
    if not "%JPDA_ADDRESS%" == "" goto gotJpdaAddress
    set JPDA_ADDRESS=jdbconn
    :gotJpdaAddress
    if not "%JPDA_SUSPEND%" == "" goto gotJpdaSuspend
    set JPDA_SUSPEND=n
    :gotJpdaSuspend
    if not "%JPDA_OPTS%" == "" goto gotJpdaOpts
    set JPDA_OPTS=-Xdebug -Xrunjdwp:transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%
    :gotJpdaOpts
    shift
    :noJpdaif ""%1"" == ""debug"" goto doDebug
    if ""%1"" == ""run"" goto doRun
    if ""%1"" == ""start"" goto doStart
    if ""%1"" == ""stop"" goto doStop
    if ""%1"" == ""version"" goto doVersionecho Usage:  catalina ( commands ... )
    echo commands:
    echo   debug             Start Catalina in a debugger
    echo   debug -security   Debug Catalina with a security manager
    echo   jpda start        Start Catalina under JPDA debugger
    echo   run               Start Catalina in the current window
    echo   run -security     Start in the current window with security manager
    echo   start             Start Catalina in a separate window
    echo   start -security   Start in a separate window with security manager
    echo   stop              Stop Catalina
    echo   version           What version of tomcat are you running?
    goto end:doDebug
    shift
    set _EXECJAVA=%_RUNJDB%
    set DEBUG_OPTS=-sourcepath "%CATALINA_HOME%\..\..\jakarta-tomcat-catalina\catalina\src\share"
    if not ""%1"" == ""-security"" goto execCmd
    shift
    echo Using Security Manager
    set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
    goto execCmd:doRun
    shift
    if not ""%1"" == ""-security"" goto execCmd
    shift
    echo Using Security Manager
    set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
    goto execCmd:doStart
    shift
    if not "%OS%" == "Windows_NT" goto noTitle
    set _EXECJAVA=start "Tomcat" %_RUNJAVA%
    goto gotTitle
    :noTitle
    set _EXECJAVA=start %_RUNJAVA%
    :gotTitle
    if not ""%1"" == ""-security"" goto execCmd
    shift
    echo Using Security Manager
    set SECURITY_POLICY_FILE=%CATALINA_BASE%\conf\catalina.policy
    goto execCmd:doStop
    shift
    set ACTION=stop
    set CATALINA_OPTS=
    goto execCmd:doVersion
    %_EXECJAVA% %JAVA_OPTS% -classpath "%CATALINA_HOME%\server\lib\catalina.jar" org.apache.catalina.util.ServerInfo
    goto end
    :execCmd
    rem Get remaining unshifted command line arguments and save them in the
    set CMD_LINE_ARGS=
    :setArgs
    if ""%1""=="""" goto doneSetArgs
    set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
    shift
    goto setArgs
    :doneSetArgsrem Execute Java with the applicable properties
    if not "%JPDA%" == "" goto doJpda
    if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
    %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
    goto end
    :doSecurity
    %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
    goto end
    :doJpda
    if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
    %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
    goto end
    :doSecurityJpda
    %_EXECJAVA% %JAVA_OPTS% %CATALINA_OPTS% %JPDA_OPTS% %DEBUG_OPTS% -Djava.endorsed.dirs="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
    goto end:end
      

  13.   

    修改方法如下 :  在 bat 文件 57行 加上 这句  
    set JAVA_OPTS= -server  -Xms700M   -Xmx700M注意 :  这两个如果设置 一样的大小 是非常有好处的:  因为可以加快 回收内存 
    ctrl + F 查找 
    %_EXECJAVA% -classpath
    将其 替换成   %_EXECJAVA% %JAVA_OPTS% -classpath  即可
      

  14.   

    大家有没有看我上面的代码啊??   有三次查数据库的,第一次是判断有没有记录,第二次是写入EXCEL文件
            第三次是查记录数
       最下面有生成日志,对另外一张表插入一条数据会不会跟JDK的版本有关??或者是TOMCAT的版本
    我的JDK是1.4的,TOMCAT是5.0的??
      

  15.   

    JVM内存配置说明查看当前JVM的内存使用情况
    System.out.println(Runtime.getRuntime().totalMemory()/(1024*1024) + "M");
    System.out.println(Runtime.getRuntime().maxMemory()/(1024*1024) + "M");
    System.out.println(Runtime.getRuntime().freeMemory()/(1024*1024) + "M");如何获得JVM的最大可用内存 在命令行下用 java -XmxXXXXM -version 命令来进行测试,然后逐渐的增大XXXX的值,如果执行正常就表示指定的内存大小可用,否则会打印错误信息。 实际发现版本上有细微差别的JDK最大容许内存值都不尽相同,因此在实际的应用中还是要自己试验一下看到底内存能达到什么样的值。