【问题标题】:In Eclipse, how do I make a .pdf file open with the System Editor by default?在 Eclipse 中,如何默认使用系统编辑器打开 .pdf 文件?
【发布时间】:2014-03-21 21:02:45
【问题描述】:

我的 Eclipse 插件在我的插件创建的项目中的项目资源管理器中为我的用户生成 .pdf 文件。今天,一位测试人员注意到,在他的安装过程中,当他在项目资源管理器中双击这个 .pdf 文件时,他得到了 OLE 异常对话框...

我想要做的是,当我的插件安装在 Eclipse 中时,它会修改首选项以将 .pdf 文件关联分配给系统的 pdf 查看器。

我意识到这可能不是一个好主意,因为我不能假设用户在他/她的 PC 上安装了 PDF 查看器。

我注意到,当我在项目资源管理器中右键单击 .pdf 文件时,我可以选择“打开方式”各种选项,例如“默认编辑器”和“系统编辑器”。我希望我的插件将默认操作设为打开方式-> 系统编辑器。

这可能吗?如果有,怎么做?

【问题讨论】:

    标签: eclipse eclipse-plugin eclipse-rcp


    【解决方案1】:

    尝试窗口 > 首选项 > 常规 > 编辑器 > 文件关联。

    如果不存在,请添加 *.pdf。突出显示它,然后添加关联的编辑器。选择外部程序单选,然后选择 Adob​​e Acrobat Document 或其他阅读器程序。

    【讨论】:

    • 谢谢史蒂夫,但我正在寻找一种以编程方式而不是手动执行此操作的方法。
    【解决方案2】:

    不使用内部类似乎无法更改或添加文件关联。

    您可以通过以下方式获取现有文件关联:

    IEditorRegistry editorRegistry = PlatformUI.getWorkbench().getEditorRegistry();
    
    IFileEditorMapping [] mappings = editorRegistry.getFileEditorMappings();
    

    但更新列表需要使用IEditorRegistryEditorRegistry 实现,这是一个内部类。 IFileEditorMapping 的实现也是内部的。

    更新:

    org.eclipse.ui.editors 扩展点确实具有用于运行外部程序的command 属性和用于通过IEditorLauncher 类运行程序的launcher 属性。您也许可以使用其中之一。

    【讨论】:

    • 谢谢greg-499。我担心会出现这种情况。我发现在某些用户的机器上,文件关联映射到 .pdf 阅读器程序已经完成,而在其他机器上则没有。您知道什么会导致这种间歇性行为吗?
    • 很难遵循编辑器注册表所做的一切!我确实注意到编辑器扩展点有一些可能有用的东西 - 答案已更新。
    猜你喜欢
    • 2013-02-28
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 2011-03-28
    • 2012-11-17
    • 1970-01-01
    相关资源
    最近更新 更多