【发布时间】:2016-09-30 06:37:21
【问题描述】:
我有以下程序,它在运行时向自身添加一个方法。但我每次都必须使用 F5 按钮或刷新选项刷新它。 有没有办法可以在程序本身中编写刷新代码,以便在修改后自行刷新?我正在处理的项目是 Java 应用程序,而不是 Eclipse 插件,据我所知,无法使用 refreshLocal() 方法。
public class Demo {
public static void main(String[] args) throws IOException, CoreException {
File file = new File("/home/kishan/workspace/Roast/src/Demo.java");
if (file.exists()) {
JavaClassSource javaClass = Roaster.parse(JavaClassSource.class,
file);
javaClass.addMethod().setPublic().setStatic(true)
.setName("newMethod").setReturnTypeVoid()
.setBody("System.out.println(\"newMethod created\");")
.addParameter("String[]", "stringArray");
FileWriter writer = new FileWriter(file);
writer.write(javaClass.toString());
writer.flush();
writer.close();
}
}
}
我尝试使用 eclipse JDT 中定义的 refreshLocal() 方法,但由于我的项目是 Java 应用程序,因此 ResourcePlugin.getWorkspace() 方法不起作用,给我一个“工作区关闭”错误。
任何建议都是赞赏。
【问题讨论】:
-
您正在编辑的 .java 文件不是它编译和运行的 .class 文件。
-
@ChiefTwoPencils 你想暗示什么?
-
@ChiefTwoPencils 也许他想在eclipse中点击“运行”;然后想看看eclipse里面添加的方法……不用再按F5了。换句话说:运行类应该导致 Eclipse 刷新它的源视图。
-
@GhostCat 这正是我想做的。