0 0

OpenOffice内存无限增加10

我用:
soffice -headless -accept="socket,port=8100;urp;"
命令启动OpenOffice,然后在程序中

 

 

	public void run() {
		// 创建Openoffice连接
		OpenOfficeConnection con=null;
		long newsooc_s=System.currentTimeMillis();
		con = new SocketOpenOfficeConnection(8100);
		try {
			// 连接        
			long con_s=System.currentTimeMillis();
			con.connect();
			long con_e=System.currentTimeMillis();
			System.out.println(this.getName()+" "+con.isConnected()+"'con.connect: "+con_e+"-"+con_s+"=0."+(con_e-con_s)%1000+"秒");
		} catch (Exception e) {
			System.out.println("获取OpenOffice连接失败...");
			e.printStackTrace();
		}
		// 创建转换器
		DocumentConverter converter = new OpenOfficeDocumentConverter(con);
		// 转换文档html
		String fn = "E:/test_oo/Fintelligen_"+this.hashCode()+ ".html";
		converter.convert(new File("E:/test_oo/Fintelligen.xls"), new File(fn));
		long dc_e=System.currentTimeMillis();
		System.out.println(this.getName()+"'converter.convert: "+dc_e+"-"+newsooc_s+"="+(dc_e-newsooc_s)/1000+"."+(dc_e-newsooc_s)%1000+"秒");
		// 关闭openoffice连接
		con.disconnect();
	}

 

这样就会使后台的openoffice内存不断变大,好像链接没有释放。

请大虾解决一下内存问题。


问题补充:<div class="quote_title">chen_yongkai 写道</div><div class="quote_div"><pre name="code" class="java">public void run() {  
    // 创建Openoffice连接  
    OpenOfficeConnection con=null;  
try {
    long newsooc_s=System.currentTimeMillis();  
    con = new SocketOpenOfficeConnection(8100);  
     
        // 连接          
        long con_s=System.currentTimeMillis();  
        con.connect();  
        long con_e=System.currentTimeMillis();  
        System.out.println(this.getName()+" "+con.isConnected()+"'con.connect: "+con_e+"-"+con_s+"=0."+(con_e-con_s)%1000+"秒");  

    // 创建转换器  
    DocumentConverter converter = new OpenOfficeDocumentConverter(con);  
    // 转换文档html  
    String fn = "E:/test_oo/Fintelligen_"+this.hashCode()+ ".html";  
    converter.convert(new File("E:/test_oo/Fintelligen.xls"), new File(fn));  
    long dc_e=System.currentTimeMillis();  
    System.out.println(this.getName()+"'converter.convert: "+dc_e+"-"+newsooc_s+"="+(dc_e-newsooc_s)/1000+"."+(dc_e-newsooc_s)%1000+"秒");  
    } catch (Exception e) {  
        e.printStackTrace();  
    } finally{
    // 关闭openoffice连接  
if(con!=null)
    con.disconnect();  
}
}</pre></div> <br /> <br />效果很明显,谢谢,应该是我的finally没有写的原因。 <br />测试过几次,并不能恢复到刚刚启动openoffice时的内存状态,好像总有一个链接存在,但是执行过程中已经内存有了明显的增加释放了。 <br />多线程与队列两种转换模式,执行完毕之后多线程残留的内存多,队列模式残留的内存相对少。
2011年12月29日 09:58

1个答案 按时间排序 按投票排序

0 0

采纳的答案

public void run() {   
    // 创建Openoffice连接   
    OpenOfficeConnection con=null;   
 try {
    long newsooc_s=System.currentTimeMillis();   
    con = new SocketOpenOfficeConnection(8100);   
      
        // 连接           
        long con_s=System.currentTimeMillis();   
        con.connect();   
        long con_e=System.currentTimeMillis();   
        System.out.println(this.getName()+" "+con.isConnected()+"'con.connect: "+con_e+"-"+con_s+"=0."+(con_e-con_s)%1000+"秒");   
 
    // 创建转换器   
    DocumentConverter converter = new OpenOfficeDocumentConverter(con);   
    // 转换文档html   
    String fn = "E:/test_oo/Fintelligen_"+this.hashCode()+ ".html";   
    converter.convert(new File("E:/test_oo/Fintelligen.xls"), new File(fn));   
    long dc_e=System.currentTimeMillis();   
    System.out.println(this.getName()+"'converter.convert: "+dc_e+"-"+newsooc_s+"="+(dc_e-newsooc_s)/1000+"."+(dc_e-newsooc_s)%1000+"秒");   
    } catch (Exception e) {   
        e.printStackTrace();   
    } finally{ 
    // 关闭openoffice连接   
if(con!=null)
    con.disconnect();   
}
}

2011年12月30日 10:04

相关推荐

    OpenOffice安装包 OpenOffice下载

    OpenOffice是一款开源的办公软件套件,它包含了与Microsoft Office相似的各种组件,如文字处理、电子表格、演示文稿制作、绘图以及数据库管理工具。这个压缩包包含了两个针对Linux操作系统的版本:OpenOffice_4.1.6_...

    openoffice中文开发文档

    OpenOffice是一款开源的办公软件套件,它包含了文字处理、电子表格、演示文稿、绘图等多种组件,可与Microsoft Office兼容。对于开发者而言,OpenOffice提供了丰富的API接口,允许开发人员进行二次开发,实现自定义...

    openoffice完整jar包

    同时,对于大型文档,应考虑分段处理或采用流式转换技术,减少内存占用。此外,还应考虑文件格式的安全性,防止恶意代码通过文档执行。 7. **错误处理与日志记录**: 开发过程中,要对可能出现的错误进行妥善处理,...

    openoffice

    在IT领域,特别是开源软件社区,Apache OpenOffice(简称OpenOffice)是一款备受推崇的免费办公套件,它提供了包括文字处理、电子表格、演示文稿、数据库管理等在内的多种功能,是Microsoft Office的一个强有力的...

    openOffice字体.zip

    OpenOffice是一款开源的办公软件套件,它包含了字处理、电子表格、演示文稿和图形编辑等组件,可与Microsoft Office兼容。在处理文档时,可能会遇到文本显示为乱码的问题,这通常是因为缺少特定的字体导致的。针对这...

    c#使用openoffice组件操作文件

    OpenOffice组件,也称为UNO(Universal Network Objects)接口,允许开发者通过编程方式与OpenOffice进行交互。在C#中,我们可以使用JavaBridge或NPOI等库来调用这些接口,实现文件的操作和转换。以下是一些关键知识...

    RHEL下安装Openoffice

    "RHEL下安装Openoffice" 在 RHEL 操作系统中,安装 OpenOffice 办公套件可以通过四个步骤完成。首先,需要下载 OpenOffice 的安装包 OOo_2.2.1_LinuxIntel_install_wJRE_zh-cn.tar.gz,并将其解压缩。然后,安装 ...

    OpenOffice_4.1.5 win版.rar

    - 需要一定的硬件配置,如至少512MB内存和1GB硬盘空间。 总的来说,OpenOffice 4.1.5 是一个强大且免费的办公软件替代方案,尤其适合个人用户和小型企业,它提供了与Microsoft Office相当的功能,同时也具备开源和...

    OpenOffice API的例程

    OpenOffice API是一个强大的工具,允许开发者通过编程方式与OpenOffice套件进行交互,包括创建、修改和处理类似于Microsoft Office的Word文档和Excel电子表格。在本文中,我们将深入探讨如何利用C++调用OpenOffice ...

    openoffice-linux.zip

    1. 内存:至少256MB,推荐512MB以上。 2. 硬盘空间:大约700MB的可用空间用于安装。 3. 支持的Linux发行版:Ubuntu、Debian、Fedora、CentOS等主流Linux发行版都支持OpenOffice。 二、下载OpenOffice 首先,你需要...

    OpenOffice 4.1.8 Ubuntu 安装包

    OpenOffice 4.1.8 是一款开源的办公软件套件,专为各种操作系统,包括Ubuntu,提供免费的文档处理、电子表格、演示文稿、绘图和数据库管理工具。这款软件是Apache软件基金会的项目之一,旨在替代商业化的Microsoft ...

    openoffice的C#应用各种文档格式转换pdf

    2. 打开Word文档:使用DocumentLoader服务加载Word文档到OpenOffice的内存中。 3. 转换操作:调用DocumentConverter的convert方法,指定源文档路径、目标PDF路径以及转换选项。 4. 关闭连接:完成转换后,记得关闭...

    openoffice_API.rar

    Apache OpenOffice API 是用于访问 Apache OpenOffice 的通用编程接口。可以使用 Apache OpenOffice API 创建、打开、修改和打印 Apache OpenOffice 文档。它提供了通过个人宏扩展 Apache OpenOffice 功能范围的选项...

    OpenOffice在线预览文件

    OpenOffice是一款开源的办公软件套件,它包含了与Microsoft Office相似的应用程序,如Writer(文字处理)、Calc(电子表格)、Impress(演示文稿)和Draw(绘图)。这款软件的强大之处在于其跨平台的兼容性和对多种...

    openoffice二次开发报告

    **OpenOffice二次开发详解** OpenOffice是一款开源的办公软件套件,它包含了文字处理、电子表格、演示文稿、绘图等多种组件,可以与Microsoft Office兼容。OpenOffice提供了丰富的API和工具,允许开发者进行二次...

    openoffice示例.rar

    OpenOffice是一款开源的办公软件套件,它包含了与Microsoft Office相似的各种组件,如文字处理、电子表格、演示文稿制作、绘图以及数据库管理等工具。这个名为"openoffice示例.rar"的压缩包文件很可能是为了提供...

    openoffice所需jar包

    OpenOffice是一款开源的办公软件套件,它支持创建、编辑和转换各种文档格式。在Java开发环境中,如果需要与OpenOffice进行交互,例如自动化处理文档或数据转换,开发者通常会用到特定的Java库,这些库被打包成JAR...

    OpenOffice Basic编程指南

    ### OpenOffice Basic编程指南 #### 一、OpenOffice Basic编程简介 **OpenOffice Basic**是一种专为**OpenOffice.org**开发的编程语言,它与**Basic**家族中的其他语言(如Visual Basic或VBA)有着密切的关系。...

    java使用OpenOffice实现的Excel转pfd

    本话题主要关注如何使用OpenOffice API在Java环境中将Excel文件转换为PDF格式,同时确保图片等复杂元素能够完美保留。 OpenOffice是一个开源的办公套件,它提供了丰富的API,可以被Java应用程序调用进行文档操作,...

Global site tag (gtag.js) - Google Analytics