java - 设置 eclipse 插件的工作目录

标签 java eclipse eclipse-plugin

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

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

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

谢谢!!

最佳答案

工作目录是为应用程序而不是插件设置的。我可以想象如果所有插件都尝试根据自己的喜好设置工作目录会造成困惑......

可以使用 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());

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

关于java - 设置 eclipse 插件的工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8334824/

相关文章:

java - 尝试为 Vector 添加元素()时的 NPE

eclipse - 将 WAR 文件打包到 EAR 中,以便 WAR 依赖项可用

javascript - 如何更改 Eclipse 以在 Javascript 编辑器中使用空格而不是制表符?

eclipse-plugin - 哪个eclipse插件实现了Ctrl+PageDown或M1+PageDown

java - 将具有字符串 json 字段的 java 对象转换为 JSON

java - 通过绑定(bind)服务从服务到 Activity 进行通信

java - 将当前年份值设置为整数

Applet 上的 Java NullPointerException

java - 如何将 ojdbc jar 添加到我的项目中并使用它

database - 如何在 Windows 中使用的 Eclipse 中设置 Prolog Interpreter 路径?