在eclipse插件中创建一个新的java文件

问题描述 投票:0回答:4

我正在创建一个 Eclipse 插件。 我有一个带有java代码的字符串,我想将此代码保存到项目中。我使用 IFile 来创建我的文件。 还有其他更好的方法来保存java代码吗?

伊多

java eclipse-plugin eclipse-rcp
4个回答
0
投票

我正在思考这个问题。 使用 IFile,然后让 JDT 发现它就可以正常工作,它绝对具有简单的优点。 这就是 org.eclipse.core.resources API 的设计目的。 如果您想了解更多信息,请查看 org.eclipse.jdt.core 包中的 JavaCore。 您可能需要在创建 IFile 后调用 JavaCore.create( file ),其中 file 是您新创建的 IFile 实例。


0
投票

我遵循了《Contributing to Eclipse》一书中的示例。

从这里下载示例代码http://www.informit.com/store/product.aspx?isbn=0321205758

它属于一个名为

TestProject
的类。

基本上它从

org.eclipse.jdt.core.IJavaProject
创建了
IProject
。 并从
org.eclipse.jdt.core.ICompilationUnit
 创建 
org.eclipse.jdt.core.IPackageFragment

IPackageFragment pack = sourceFolder.createPackageFragment(packageName, false, null);
StringBuffer buf = new StringBuffer();
buf.append("package " + pack.getElementName() + ";\n");
buf.append("\n");
buf.append(source);
ICompilationUnit cu = pack.createCompilationUnit(cuName, buf.toString(), false, null);

顺便说一句,这是一本很棒的书,它展示了如何对您认为不可测试的插件部分进行单元测试。


0
投票

您可以编写一个性质和构建器,将文本保存为扩展名为“.java”的文件,只要打开自动构建,JDT就会拾取它。


0
投票

请注意,Eclipse 4.33(2024 年第 3 季度)确实附带:

用于创建/读/写的增强型 IFile API

org.eclipse.core.resources 插件定义了以下新方法:

  • IFile.create(byte[], boolean, boolean, IProgressMonitor)
  • IFile.create(byte[], int, IProgressMonitor)
  • IFile.write(byte[], boolean, boolean, boolean, IProgressMonitor)
  • IFile.setContents(byte[], boolean, boolean, IProgressMonitor)
  • IFile.setContents(byte[], int, IProgressMonitor)
  • IFile.readAllBytes()
  • IFile.readNBytes(int)
  • IFile.readAllChars()
  • IFile.readString()

这些方法是为了方便起见,并针对性能进行了优化,处理不需要流式传输的小文件。

© www.soinside.com 2019 - 2024. All rights reserved.