我用eclipse建了一个文件:(把jocab.jar包和dll文件分别放到了classpath和path中,并在运行时的环境中加入了它)
import com.jacob.com.*;
import com.jacob.activeX.*;public class CreateWordDoc {
    public static void open(String paths)
    {
        ActiveXComponent app = new ActiveXComponent("Word.Application");//启动word        String inFile = paths;//word file to open        try {
            app.setProperty("Visible", new Variant(true));//设置word可见
            Object docs = app.getProperty("Documents").toDispatch();
            Object doc = Dispatch.invoke(docs,"Open", Dispatch.Method, 
            new Object[]{inFile,new Variant(false), new Variant(true)}, 
            new int[1]).toDispatch();//打开word文件
        } 
        catch (Exception e) {
            e.printStackTrace();
        } 
         System.out.println("over!...");
    }    public static void main(String[] args)
    {
        String paths = new String("D:\\Exp\\Java_exp\\test.doc");
        open(paths);
    }
}
但运行时总是提示:
java.lang.UnsatisfiedLinkError: no jacob in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1491)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:834)
at com.jacob.com.Dispatch.<clinit>(Dispatch.java)
at ai.agents.CreateWordDoc.open(CreateWordDoc.java:25)
at ai.agents.CreateWordDoc.main(CreateWordDoc.java:45)
Exception in thread "main" 
请问该如何解决啊!

解决方案 »

  1.   

    把dll放到系统目录底下,如:windows2000放到C:\WINNT\system32\目录下。
      

  2.   

    to GJA106(中文字符):
    现在可以运行了,但是Object docs = app.getProperty("Documents").toDispatch();这句出错,可以解释一下原因么,谢谢!
      

  3.   

    这个getProperty()中的参数如果是对word操作时应该是什么,excel时又应该是什么啊
      

  4.   

    try {
        String sInputDoc = "E:\\work\\testWord\\file_in.doc";
        String sOldText = "[label:import:1]";
        String sNewText = "I am some horribly long sentence, so long that [insert bullshit here]";
        boolean tVisible = true;
        boolean tSaveOnExit = false;
       /////////////////////////////////////////////////////////////
        ActiveXComponent oWord = new ActiveXComponent("Word.Application");
        oWord.setProperty("Visible", new Variant(tVisible));
        Object oDocuments = oWord.getProperty("Documents").toDispatch();
        Object oDocument = Dispatch.call(oDocuments, "Open", sInputDoc).toDispatch();
        Object oSelection = oWord.getProperty("Selection").toDispatch();
        Object oFind = oWord.call(oSelection, "Find").toDispatch();    //////////////////////////////////////////////////////////////////////
        Dispatch.put(oFind, "Text", sOldText);
        Dispatch.call(oFind, "Execute");
        Dispatch.put(oSelection, "Text", sNewText);    //////////////////////////////////////////////////////////////////////
        Dispatch.call(oSelection, "MoveDown");
        Dispatch.put(oSelection, "Text", "\nSo we got the next line including BR.\n");     //////////////////////////////////////////////////////////////////////
        Object oFont = Dispatch.get(oSelection, "Font").toDispatch();
        Dispatch.put(oFont, "Bold", "1");
        Dispatch.put(oFont, "Italic", "1");
        Dispatch.put(oFont, "Underline", "0");
        Dispatch.put(oFont, "Size", "20");
        Dispatch.put(oFont, "Color", "1,0,0,0");
                //Dispatch.put(oFont, "centre", "1");
                //Dispatch.put(oFont, "block", "1");
                //Object range=Dispatch.get(oSelection,"Range").toDispatch();
                // Dispatch.put(range, "Color", "1,0,0,0");            //////////////////////////////////////////////////////////////////////
        Object oAlign = Dispatch.get(oSelection, "ParagraphFormat").toDispatch();
        Dispatch.put(oAlign, "Alignment", "1");
        // Dispatch.put(oAlign, "Color", "1");
        //////////////////////////////////////////////////////////////////////
        Object oWordBasic = Dispatch.call(oWord, "WordBasic").getDispatch();
        Dispatch.call(oWord, "SaveAs", sInputDoc);
        //Dispatch.call(oWordBasic, "FileSave", sInputDoc);
        Dispatch.call(oDocument, "Close", new Variant(tSaveOnExit));
        oWord.invoke("Quit", new Variant[0]);    //////////////////////////////////////////////////////////////////////
        /* String sImgFile = "e:\\jsplife.png";
        Dispatch.call(oSelection, "MoveDown");
        Object oImage = Dispatch.get(oSelection, "InLineShapes").toDispatch();
        Dispatch.call(oImage, "AddPicture", sImgFile);
        Dispatch.call(oDocument, "Close", new Variant(tSaveOnExit));
                 //////////////////////////////////////////////////////////////////////*/
                 ////////////////////////////////////////////////////////////////////// }
     catch (Exception eEe) {
          eEe.printStackTrace();
      }
      

  5.   

    也是这句出错了:Object oDocuments = oWord.getProperty("Documents").toDispatch();
    com.jacob.com.ComFailException: A COM exception has been encountered:
    At Invoke of: Documents
    Description: An unknown COM error has occured.
    at com.jacob.com.Dispatch.invokev(Native Method)
    at com.jacob.activeX.ActiveXComponent.getProperty(ActiveXComponent.java)
    at ai.agents.Test.main(Test.java:32)
    是不是参数写的不对啊,我也excel的操作用的参数
    Object workbooks = xl.getProperty("Workbooks").toDispatch();也不对,怎么解决啊