我使用Eclipse 3.6开发OpenEdge。由于特定原因,我需要未指定的模板变量。我有$ {time},$ {date}等,但我需要其他人。所以我反编译模板类并开发成它们(org.eclipse.text_3.5.0.v20100601-1300.zip \ org \ eclipse \ jface \ text \ templates \ GlobalTemplateVariables.class)。
我需要将当前项目名称插入模板中(在JAVA中)。
我目前通过获取所有正在运行的任务来解决这个问题,并且从标题中我获得了确切的字符串(tasklist.exe / fo csv / nh)。这不是最好的,但它确实有效。 问题是,在Windows 10上,这个命令非常慢,所以我必须找出另一种从模板代码中获取当前项目名称的方法。
我试过了:
IWorkbench wb = PlatformUI.getWorkbench();
IWorkbenchWindow win = wb.getActiveWorkbenchWindow();
IWorkbenchPage page = win.getActivePage();
IEditorPart editor = page.getActiveEditor();
...
...
...
但它崩溃了,我无法调试它。
还有另一种方法可以从Eclipse 3.6中的模板代码中获取当前项目吗?
由于
更新:我尝试通过此方法处理任何异常:
PrintWriter writer;
try {
writer = new PrintWriter("c:\\Progress\\ProjectResources\\aaaa" + ".txt", "UTF-8");
writer.println("I've come this far");
writer.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
IWorkbench wb = PlatformUI.getWorkbench();
IWorkbenchWindow win = wb.getActiveWorkbenchWindow();
IWorkbenchPage page = win.getActivePage();
IEditorPart editor = page.getActiveEditor();
return "faja";
} catch (Exception e){
try {
writer = new PrintWriter("c:\\Progress\\ProjectResources\\aaaa" + ".txt", "UTF-8");
writer.println(e.getMessage());
writer.close();
} catch (FileNotFoundException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} catch (UnsupportedEncodingException ex2) {
// TODO Auto-generated catch block
ex2.printStackTrace();
}
}
我已经在文件中写了第一条“消息”(aaaa.txt - >“我到目前为止”)但不是第二条(e.getMessage())。日志中没有任何内容,屏幕上没有任何内容,我刚创建的文件中没有任何内容。