java解析dllファイルのエラー
6117 ワード
現在のプロジェクトでは、Excelの内容を画面に表示する必要があります。いろいろな方法を試してみました。次のようなものが似合うと思います。1.運行環境はwinプラットフォームで、移植可能なものには影響がありません。2.文書の内容は簡単です。3.簡単に次のコードを表示します。
import java.io.File;
import org.jawin.DispatchPtr;
import org.jawin.win32.Ole32;
/**
* xls xml
* @author Jeff
* @version v1.0
*/
public class ExcelUtil {
/**
*
* @param src xls
* @param dest xml
*/
public static void saveXlsAsXml(String src, String dest) {
try {
Ole32.CoInitialize();
File file = new File(dest);
if (file.exists()) {
file.delete();
}
DispatchPtr app = new DispatchPtr ("Excel.Application");
app.put("Visible", false);
DispatchPtr books=(DispatchPtr)app.get("Workbooks");
DispatchPtr book = (DispatchPtr) books.invoke("Open", src);
/**
* for the benefit of others, here is the complete list of canstant values for the saveas function :
18=Excel
6=Comma-seperated values format
22=Macintosh comma-separated values format
24=MSDOS comma-seperated values format
23=MS windows comma-separated values format
-4158=O/S boing used comma-separated values format
7=DBase II format
8=DBase III format
11=DBase IV format
9=Data interchange format
16=Excel 2.0 format
27=Excel 2.0 (Far East) format
29=Excel 3.0 format
33=Excel 4.0 format
35=Excel 4.0 Workbook format
39=Excel 5.0 & Excel 97 format
43=Excel 95 & Excel 97 format
44=HTML
26=Excel international add-in
25=Excel international marco
2=symbolic link format
17=template file format
19=Mcintosh test file format
21=MSDOS test file format
36=text printer file (.prn)
20=MS Windows text file format
42=Unicode
45=Web archive format (.mht)
5=Lotus 2.x format
31==Lotus 2.x .all format
30=Lotus 2.x .fmt format
15=Lotus 3.x format
32=Lotus3.x and Lotus 123 for Windows format
38=Lotus 4.0 format
4=MS Works format
-4143=Excel workbook format
28=MS Works (far east) format
34=Quattro Pro for MSDOS format
46=XML format
*/
book.invoke("SaveAs",dest,new Integer(46));
book.invoke("Quit");
} catch (Exception e) {
}
}
}
問題が出てきました。ユニットテストは時報になりました。この異常:java.lang.Usatis fielinkErrror:win 32 Invoke 0 at org.jawin.mashl.GenericStub.GenersicStub.win 32 Invoke0(Native Method)aorg.jawin.jawin.jawin.jajawin.jjjjjjttttttttttttttttttttttttttttttttttttf.jajajava.jajajava.jajajajajajajajajajajajajajajajajajajava.fftttttttPtr.java:205)at org.jawin.win 32.Ole32.LSIDFroomProggID(Ole32.java:115)aorg.jawin.win 32.Ole32.GetFroomProgID(Ole32.java:95)aorg.jawin.OMPtr.( COMPtr. java:126)atog.jawing.jawin.jawittttttttttttttttttttttttttjajajajajajawitttttttttttttttttttttttttttttttttttttttttttttttttttttttttt)at comp.intelsrc.test.TestExcel Operate.testExport ToExcel(TestExcel Operate.java:27)at sun.refrectt.NativeMethodAccess orImpl.invoke 0(Native Method)at sun.refrectt.NativeMethAccess orImpl.invoke:NativeMethAccecess Impl.java:39)asun.refrefttttttdedededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededededeod.invoke(Method.java:592)at org.junnit.runners.model.Frame ew orkMethodドル1.runReflect Callアトorg.junnit.internal.runners.model.RefretiveCallable.run(RefretiveCallable.java:15)at org.jorg.jnit.runners.model.Fraameeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeem m m MethMethMedel.ininininindddddtttttttfffffffffffffttttttttttttttttvaluate(InvokeMethod.java:20)at org.junnit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)at org.junt.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)aorg.junt.runit.runners.BlockJUnit 4 Class Runnerarararararannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn. rum.ruld. ruldldld. rurunnnnttttttttttBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBldldldldldldldldldldld4 Class Runner.java:46)at org.junnit.runners.PartRunner.run Children(PartentRunner.java:180)org.junnit.runners.PartRunner.access$000(PartRunner.java:41)aorg.jnit.jnit.runners.PantRunner$1.evaluate(PantRunner.java:173)aorg.jorg.junt.jnit.int.internal.internal.internal.jternal.Beternal.Beternal.BentntntntmmmmmmmmmmmmmmjumumumumumumumumumumumumininininininininininininininininininininininininininininininininininRunAfters.evaluate(RunAfters.java:31)at org.junnit.runners.PartRunner.run(PartRunner.java:220)at org.eclipse.jdt.internal.jnit 4.runner.JUnit 4 TestReference. run(JUnit 4 TestReference.java:46)aorg.eclipspe.jdt.internal.jternal.jjutnit.jutnit.jnet.jnet.jnet.jnet.jtititititititititinit.jnet.jnet.jnet.jnet.jnet.jnet.jnet.jnet.jnet.jnet.jnet.jnet.jnet.jnet.jnet.jnet.jjnet.jjnet.jnet.jnet.jnet.jjjTestRunner.run Tests(RemoteTestRunner.java:467)org.eclipspe.jdt.internal.jnit.runner.RemoteteTestRunner.runTestststs(RemoteTestRunner.java:683)aorg.eclipse.jdt.internal.jjjnit.runner.RemotetetetetetetetetetetetetetetetetestRner.runer.runer.runer.rurun.rurururun.rurun.run.Reststststststststininininininininininin. run.rurun(Reststststststrururururun.Remomomomomoner.RestststststRemoteTestRunner.java:197)私はjawinを使ってxls文書を解析します。だから通常の手順で1.jawin.dllをsystem 32のディレクトリにコピーします。jawin-stubs.jarとjawin.jarカバンをjre/lib/extディレクトリに導入します。実行してください。どこに問題がありますか?