小弟使用JCOM 调用COM组件 IDispatch vbcom = new IDispatch(rm, "Enic"); 不知道这里应该怎么写
jp.ne.so_net.ga2.no_ji.jcom.JComException: createInstance() failed HRESULT=0x800401F3L
at jp.ne.so_net.ga2.no_ji.jcom.IDispatch._create(Native Method)
at jp.ne.so_net.ga2.no_ji.jcom.IDispatch.create(IDispatch.java:84)
at jp.ne.so_net.ga2.no_ji.jcom.IDispatch.<init>(IDispatch.java:46)
at enic.javacall.Process(javacall.java:13)
at enic.test.main(test.java:11)我一运行就这错误不知道是不是上面那个地方写错了,请教下大家~
import jp.ne.so_net.ga2.no_ji.jcom.IDispatch;
import jp.ne.so_net.ga2.no_ji.jcom.ReleaseManager;public class javacall { public static void main(String[] args) {
// Process(Object[] oh);
}
public static String Process(Object[] o){
ReleaseManager rm = new ReleaseManager();
try {
IDispatch vbcom = new IDispatch(rm, "Enic");
Object[] param = o;
String strRet = (String)vbcom.method( "DB_Create", param );
System.out.println("return: " + strRet);
}
catch ( Exception e ) {
e.printStackTrace();
}
finally {
rm.release();
}
return null;
}
}
jp.ne.so_net.ga2.no_ji.jcom.JComException: createInstance() failed HRESULT=0x800401F3L
at jp.ne.so_net.ga2.no_ji.jcom.IDispatch._create(Native Method)
at jp.ne.so_net.ga2.no_ji.jcom.IDispatch.create(IDispatch.java:84)
at jp.ne.so_net.ga2.no_ji.jcom.IDispatch.<init>(IDispatch.java:46)
at enic.javacall.Process(javacall.java:13)
at enic.test.main(test.java:11)我一运行就这错误不知道是不是上面那个地方写错了,请教下大家~
import jp.ne.so_net.ga2.no_ji.jcom.IDispatch;
import jp.ne.so_net.ga2.no_ji.jcom.ReleaseManager;public class javacall { public static void main(String[] args) {
// Process(Object[] oh);
}
public static String Process(Object[] o){
ReleaseManager rm = new ReleaseManager();
try {
IDispatch vbcom = new IDispatch(rm, "Enic");
Object[] param = o;
String strRet = (String)vbcom.method( "DB_Create", param );
System.out.println("return: " + strRet);
}
catch ( Exception e ) {
e.printStackTrace();
}
finally {
rm.release();
}
return null;
}
}
但发布到tomcat下时,就出现了java.lang.UnsatisfiedLinkError: no jcom in java.library.path异常
(源代码中的System.loadLibrary("jcom");出错)。
能分享一下您的使用心得吗?好像用jcom的人很少,谢谢了。
at jp.ne.so_net.ga2.no_ji.jcom.IDispatch._create(Native Method)
at jp.ne.so_net.ga2.no_ji.jcom.IDispatch.create(IDispatch.java:84)
at jp.ne.so_net.ga2.no_ji.jcom.IDispatch.<init>(IDispatch.java:46)
at change.Transformer.et2pdf(Transformer.java:43)
at change.Transformer.main(Transformer.java:95)
这种错误怎么解决啊,请Lz把方案分享一下啊。
2:也与Office版本有关系,必须最低版本为office2003以上;
3:操作系统和开发环境要统一协调(如Tomcat、Java Jdk、MyEclipse都要搭配协调);
4:将jcom.dll这个组件分别放于tomcat bin 目录下;jdk bin 目录下;jre bin 目录下;还有系统System32的文 件夹下;这样就会大功告成!