应该是你把整个excel文件加载到内存的原因吧!
解决方案 »
- Maven+Spring+Hibernate整合出错,求高手帮帮,留下qq或邮箱我给您发源代码
- 传值问题
- 关于一台web服务器与一台db服务器网络的配置
- 请问关于sql中char和java的转换问题
- struts 2 疑问
- 怎么将String = "what" 转换成 Unicode 格式如:String = "\u00053......."
- 有谁有jax-rpc.jar,进来发给我好吗,送50分,急
- struts连接数据库
- EJB的问题,有一定难度(对我来说)。
- springboot整合redis报错
- 安装JAVA SE后 是否还可以安装 JAVA EE
- wabacus轻量级框架的数据使用问题
是不是线程阻塞的问题?Process .waitFor();应该怎么样控制?
是不是线程阻塞的问题?Process .waitFor();应该怎么样控制?
你为什么要用pro.waitFor();呢?根据JDK里面说的:导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。我觉得你可以这样
Process pro=Runtime.getRuntime().exec("cmd /c start E:/data.vbs E:/hong.xla "+fileName);
pro = null;
当没有 Process 对象的更多引用时,不是删掉子进程,而是继续异步执行子进程。
你可以去参考下JDK文档
是不是线程阻塞的问题?Process .waitFor();应该怎么样控制?
你为什么要用pro.waitFor();呢?根据JDK里面说的:导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。我觉得你可以这样
Process pro=Runtime.getRuntime().exec("cmd /c start E:/data.vbs E:/hong.xla "+fileName);
pro = null;
当没有 Process 对象的更多引用时,不是删掉子进程,而是继续异步执行子进程。
你可以去参考下JDK文档
请问,java是怎么样回收这里excel产生的内存呢?
是不是线程阻塞的问题?Process .waitFor();应该怎么样控制?
你为什么要用pro.waitFor();呢?根据JDK里面说的:导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。我觉得你可以这样
Process pro=Runtime.getRuntime().exec("cmd /c start E:/data.vbs E:/hong.xla "+fileName);
pro = null;
当没有 Process 对象的更多引用时,不是删掉子进程,而是继续异步执行子进程。
你可以去参考下JDK文档
请问,java是怎么样回收这里excel产生的内存呢?
这个我不清楚,你通过Runtime.getRuntime().exec方法是调用外部程序,这个内存java应该是没办法回收!
pro = null;
是不是线程阻塞的问题?Process .waitFor();应该怎么样控制?
你为什么要用pro.waitFor();呢?根据JDK里面说的:导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。我觉得你可以这样
Process pro=Runtime.getRuntime().exec("cmd /c start E:/data.vbs E:/hong.xla "+fileName);
pro = null;
当没有 Process 对象的更多引用时,不是删掉子进程,而是继续异步执行子进程。
你可以去参考下JDK文档
请问,java是怎么样回收这里excel产生的内存呢?
这个我不清楚,你通过Runtime.getRuntime().exec方法是调用外部程序,这个内存java应该是没办法回收!
因为执行的过程中,要时间转换,我人为地增加了2秒来转换,执行完毕才往下执行。这样写会不会有问题??Process pro=Runtime.getRuntime().exec("cmd /c start E:/data.vbs E:/hong.xla "+fileName);
pro = null;
try{ Thread.sleep(2000); }catch(InterruptedException e){}
是不是线程阻塞的问题?Process .waitFor();应该怎么样控制?
你为什么要用pro.waitFor();呢?根据JDK里面说的:导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程已经终止。如果已终止该子进程,此方法立即返回。如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。我觉得你可以这样
Process pro=Runtime.getRuntime().exec("cmd /c start E:/data.vbs E:/hong.xla "+fileName);
pro = null;
当没有 Process 对象的更多引用时,不是删掉子进程,而是继续异步执行子进程。
你可以去参考下JDK文档
请问,java是怎么样回收这里excel产生的内存呢?
这个我不清楚,你通过Runtime.getRuntime().exec方法是调用外部程序,这个内存java应该是没办法回收!
因为执行的过程中,要时间转换,我人为地增加了2秒来转换,执行完毕才往下执行。这样写会不会有问题??Process pro=Runtime.getRuntime().exec("cmd /c start E:/data.vbs E:/hong.xla "+fileName);
pro = null;
try{ Thread.sleep(2000); }catch(InterruptedException e){}
你都写了,实际跑跑就知道了!