我用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"
请问该如何解决啊!
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"
请问该如何解决啊!
现在可以运行了,但是Object docs = app.getProperty("Documents").toDispatch();这句出错,可以解释一下原因么,谢谢!
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();
}
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();也不对,怎么解决啊