1

我想弄清楚如何将文件放在项目的根文件夹中并在运行时使用它,在那里它可以访问。

我这样做的问题(将文件放在根文件夹中) - 默认情况下它意味着:

  1. 它不在项目的类路径中。
  2. 它不会复制到 bin(输出)文件夹。

我看不到我对文件的修改将如何影响运行过程。

据我所知,eclipse中有一个类似的机制可以做到这一点:

Plugin开发项目在项目的根文件夹中有一个文件——“plugin.xml”。
当您在文件中进行更改而不构建项目或将其复制到 bin 文件夹时,更改会在您运行它时发生。

例如:
在“plugin.xml”中添加一个扩展点并点击“RUN”,它将立即生效。

有人知道这种机制在 Eclipse 中是如何工作的吗?

编辑-澄清:我对eclipse插件开发项目的启动器如何加载\处理“plugin.xml”文件感兴趣。

4

1 回答 1

0

我假设当您说要将文件放在“项目的根文件夹”中时,您指的是正在开发的插件,然后在运行时您想要访问该文件。如果我没有正确理解这个问题,请不要投票给我,但根据我的理解,这里有一些步骤:

  1. 打开您的 MANIFEST.MF 文件 /MANIFEST.MF,这将打开一个多页编辑器。
  2. 单击构建选项卡(右起第三个)。
  3. 您可以在此处指定您希望构建器在运行时包含在插件中的插件中的哪些资源。你会注意到 plugin.xml 已经被检查过,这就是扩展每次都更新的原因。
  4. 检查此编辑器页面上的资源以获取您希望能够在运行时加载和访问的资源。在幕后,这是更新您的 build.xml,内部构建器使用它来确定在构建/导出插件时要构建/添加的源。

您已经这样做了,这就是您可以访问该文件的方式,您获取插件的 Bundle 并使用文件的路径调用 getEntryMethod,然后从那里在输入流中打开,您可以将其加载为文件或任何您想。下面的代码示例:希望这会有所帮助 - 邓肯

捆绑 myBundle = Platform.getBundle("com.mycompany.myplugin.id")
InputStream in = myBundle.getEntry("/myfile.txt").openStream();

于 2012-11-07T23:30:50.317 回答