永中Office嵌入RCP的问题
我在一个RCP程序中嵌入永中office时报如下错误,请各位指点下是什么原因,怎么解决。
Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
at emo.system.u6w9.O4f3(Unknown Source)
at emo.m7B3.X9k1.C5A9.A8O9.cm52(Unknown Source)
at emo.m7B3.X9k1.C5A9.A8O9.<clinit>(Unknown Source)
at emo.system.ControlSystem.<init>(Unknown Source)
at emo.system.ControlSystem.k5C8(Unknown Source)
at emo.system.ControlSystem$Me54.run(Unknown Source)
at emo.system.ControlSystem.main(Unknown Source)
at application.Application.createInstance(Unknown Source)
at com.reader.editor.OfficeEditor$2.run(OfficeEditor.java:113)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1762)
at java.lang.String.substring(String.java:1735)
at emo.system.u6w9.O4f3(Unknown Source)
at emo.text.font.FontFileParseKit.parse(Unknown Source)
at emo.text.font.FontFileParseKit.initFontFamily(Unknown Source)
at emo.text.font.FontFileParseKit.getAllFontName(Unknown Source)
at emo.ebeans.tg17.<clinit>(Unknown Source)
... 16 more
程序的代码如下:
public void createPartControl(Composite parent) {
parent.setLayout(new FillLayout(SWT.VERTICAL));
final Composite top = new Composite(parent, SWT.EMBEDDED);
//top.setLayout(new FillLayout());
final Frame frame= SWT_AWT.new_Frame(top);//创建awt容器
frame.setSize(parent.getSize().x,parent.getSize().y);
try {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Application.createInstance(frame);// 将当前容器传入,创建永中集成Office的实例 //at com.reader.editor.OfficeEditor$2.run(OfficeEditor.java:113) 就是指这一行
Application.setTaskPanelVisible(GlobalConstants.CURRENT_PANE, false); //隐藏所有任务面板
frame.add(Application.getInstance(), BorderLayout.CENTER);// 将当前返回得到的永中Office实例加入到当前容器中
Application.refresh(); // 刷新视图
}
});
} catch (Exception e) {
this.dispose();
e.printStackTrace();
}
}