设置eclipse插件的工作目录

时间:2011-11-30 23:58:56

标签: java eclipse eclipse-plugin

在我正在开发的Eclipse插件中,我正在查询开发目录中的一些Prolog文件。此外,我正在使用的Prolog引擎自动加载位于我的工作目录根目录的初始化文件。所有这些文件都是我插件的资源。

当我作为java独立程序执行我的应用程序时,我唯一需要做的就是在Eclipse Run Configurations对话框中将工作目录设置为我的默认输出目录。然后在执行我的应用程序时,Prolog引擎从初始化文件所在的目录开始,并且能够在需要时找到并加载应用程序的prolog文件。这个Prolog引擎是使用JPL库从Java启动的。

当我想构建应用程序的Eclipse插件时,我的问题就开始了。显然,在“运行配置”对话框中无法更改插件的默认工作目录(至少在我的Mac设置中是这种情况),否则在执行插件时会出现无限的例外列表。 所以我想知道的是,如果有另一种方法来设置插件的工作目录,无论是在开发生命周期中(即,当我将我的插件作为Eclipse应用程序启动时)还是在生产中(即插件是在插件目录中。)

谢谢!

1 个答案:

答案 0 :(得分:2)

为应用程序而不是插件设置工作目录。如果所有插件都试图按照自己的喜好设置工作目录,我可以想象这个混乱...

插件中的文件可以使用Bundle类找到,可以使用插件激活器访问。这将为您提供一个最有可能指向JAR条目的URL。 FileLocator类可用于将该URL“转换”为文件URL(文件将从JAR中提取)。

URL url = Activator.getDefault().getBundle().getEntry("file path in JAR");
URL fileUrl = FileLocator.toFileURL(url);
File file = new File(url.getPath());

如果文件必须在工作目录中,那么你可以将其复制到那里。