jacob不能关闭打开的excel进程问题
import java.io.File; import com.jacob.com.*; import com.jacob.activeX.*; public class Word2Xml1 { public void toxml(String inFile,String otFile) { ActiveXComponent app = new ActiveXComponent("Word.Application");//启动word //String inFile = "e:尀尀my1.doc";//要转换的word文件 String tpFile = "e:尀尀my.htm";//临时文件 //String otFile = "e:尀尀my.xml";//目标文件 boolean flag = false; try { app.setProperty("Visible", new Variant(false));//设置word不可见 Dispatch docs = app.getProperty("Documents").toDispatch(); Dispatch doc = Dispatch.invoke( docs, "Open", Dispatch.Method, new Object[] { inFile, new Variant(false), new Variant(true) }, new int[1]).toDispatch();//打开word文件 Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] { tpFile, new Variant(8) }, new int[1]);//作为html格式保存到临时文件 Variant f = new Variant(false); Dispatch.call(doc, "Close", f); flag = true; } catch (Exception e) { e.printStackTrace(); } finally { app.invoke("Quit", new Variant[] {}); } if (flag) { app = new ActiveXComponent("Excel.Application");//启动excel try { app.setProperty("Visible", new Variant(false));//设置excel不可见 Dispatch workbooks = app.getProperty("Workbooks").toDispatch(); Dispatch workbook = Dispatch.invoke( workbooks, "Open", Dispatch.Method, new Object[] { tpFile, new Variant(false), new Variant(true) }, new int[1]).toDispatch();//打开临时文件 System.out.println("open temp html successfully"); Dispatch.invoke(workbook, "SaveAs", Dispatch.Method, new Object[] { otFile, new Variant(46) }, new int[1]);//以xml格式保存到目标文件 Variant f = new Variant(false); Dispatch.call(workbook, "Close", f); } catch (Exception e) { e.printStackTrace(); } finally { app.invoke("Quit", new Variant[] {}); /* try { File file = new File(tpFile); file.delete(); } catch (Exception e) { } */ } } } public static void main(){ new Word2Xml1.toxml("e:尀尀my1.doc", "e:尀尀my.xml"); } } 其中有一句app.invoke("Quit", new Variant[] {}); 这句应该可以关闭打开的excel进程,我在这个程序里面写了一个main方法来调用这个方法,结果也能正常的关闭excel进程,但是我在别的类中以同样的方法调用这个方法却出现了一个不能结束的excel进程,请问这是怎么回事呢?