Java Eclipse插件从当前打开的文件获取代码

Java Eclipse插件从当前打开的文件获取代码,java,eclipse,eclipse-plugin,Java,Eclipse,Eclipse Plugin,如何从Eclipse中当前打开的文件中获取以字符串或字符串[]返回的代码?我需要这个插件,我正在制作 假设我有以下代码: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!"); } } 如果我打开了HelloWorld.java,如何以字符串[]的形式返回代码?字符串[]将包含: “公共类HelloWorld{

如何从Eclipse中当前打开的文件中获取以
字符串
字符串[]
返回的代码?我需要这个插件,我正在制作

假设我有以下代码:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, world!");
    }
}
如果我打开了HelloWorld.java,如何以
字符串[]
的形式返回代码?
字符串[]
将包含:

  • “公共类HelloWorld{”
  • “公共静态void main(字符串[]args){”
  • System.out.println(“你好,世界!”)
  • “}”
  • “}”

要获取当前编辑的文件内容,可以执行以下操作:

IWorkbenchPart workbenchPart = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart(); 
IFile file = (IFile) workbenchPart.getSite().getPage().getActiveEditor().getEditorInput().getAdapter(IFile.class);
if (file == null) throw new FileNotFoundException();
String content = IOUtils.toString(file.getContents(), file.getCharset());

类型IEditorInput的方法getAdapter(Class)未定义
也没有类IFile和IOUtils.IEditorInput实现IAdaptable接口,因此getAdapter()应该在那里。IFile位于org.eclipse.core.resources中。IOUtils是Apache公共库中的一个类。如果愿意,可以使用其他方法将InputStream转换为字符串。您使用的是哪个版本的Eclipse/targeting?要添加“org.Eclipse.core.resources”,导入是不够的。您必须将其作为依赖项添加到plugin MANIFEST.mf中。此代码确实会获取文件内容,而这正是所要求的。在某些情况下,可能需要编辑器的内容,但这是一个不同的问题。在这两种情况下,都假定“代码”意味着文本,但一般来说,文件和编辑器都不一定有文本。