Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用Eclipse SWT-OleClientSite打开扩展名为.doc的Word文档_Java_Swt_Ole - Fatal编程技术网

在Java中使用Eclipse SWT-OleClientSite打开扩展名为.doc的Word文档

在Java中使用Eclipse SWT-OleClientSite打开扩展名为.doc的Word文档,java,swt,ole,Java,Swt,Ole,我正在开发一个程序,它使用EclipseSWT客户端站点(在Windows7中)在RCP应用程序中打开Word文档。在过去两年中,该计划调用了以下构造函数: OleClientSite clientSite = new OleClientSite(oleFrame, SWT.NULL, new File(documentFileName)); 自从SWT的最新更新以来,该构造函数现在在尝试打开扩展名为“.doc”的Word文档时引发异常。扩展名为“.docx”的Word文档仍能正常运行。问题似

我正在开发一个程序,它使用EclipseSWT客户端站点(在Windows7中)在RCP应用程序中打开Word文档。在过去两年中,该计划调用了以下构造函数:

OleClientSite clientSite = new OleClientSite(oleFrame, SWT.NULL, new File(documentFileName));
自从SWT的最新更新以来,该构造函数现在在尝试打开扩展名为“.doc”的Word文档时引发异常。扩展名为“.docx”的Word文档仍能正常运行。问题似乎是OleClientSite没有正确地将“.doc”识别为单词扩展名,因为使用以下构造函数显式输入此信息是有效的:

OleClientSite clientSite = new OleClientSite(oleFrame, SWT.NULL, "Word.Document", new File(documentFileName));
但是,此构造函数附带一个警告,说明永远不能使用它:

重要提示:此方法不是公开的 OleClientSite的API。它被标记为公共,以便 可以在SWT提供的包中共享。事实并非如此 可在所有平台上使用,且不应从 应用程序代码

奇怪的是,尽管这个构造函数明确表示永远不应该使用它,但它是


如果有人有什么建议,我将不胜感激。到目前为止,我的选项似乎是禁止我的用户使用“.doc”文件或回滚到SWT的旧版本。

当前的Eclipse版本支持从navigator视图打开Word文档(*.doc)。它使用类
org.eclipse.ui.internal.editorsupport.win32.OleEditor
在编辑器部件中打开文档。我建议您看看[1]中的代码,并根据您的场景调整所需的部分


[1]

与相关,但这个问题没有解决方案。我只是尝试了一下,不幸的是,Eclipse发送给我的错误与我在旧客户端代码中得到的错误相同。未能创建Ole客户端。结果=-2147221164。Eclipse自身的异常处理也给出了一个原因:“无法创建就地编辑器。这可能是因为没有针对您试图打开的文件类型注册的Ole编辑器。”