标签: eclipse-jdt

Eclipse JDT教程

这是以编程方式编写Java的后续问题

我正在寻找JDT构建一个独立的应用程序(而不是一个eclipse插件)来编程编写JUnit测试类.

我想知道我的意图是否可行.

另外我想知道一些让我入门的教程,我上一期提出的教程对我来说似乎有点先进.

eclipse-jdt

3
推荐指数
1
解决办法
3190
查看次数

如何在Eclipse Helios(Java)中禁用自动缩进?

我发誓我到处寻找,并禁用了几乎所有东西(插入匹配的括号等),但是当我输入一个左括号并按下回车键时,它会使用一个标签自动缩进下一行.有没有办法禁用这种"方便"的"商品"?

java eclipse eclipse-jdt

3
推荐指数
1
解决办法
7433
查看次数

如何确定Eclipse JDT中方法或字段的修饰符?

我正在为Eclipse JDT编写一些简单的AST访问者.我有一个MethodVisitorFieldVisitor每个扩展的类ASTVisitor.举个MethodVisitor例子.在该类的Visit方法(这是一个覆盖),我能够找到每个MethodDeclaration节点.当我有其中一个节点时,我想查看它Modifiers是否是它(public或者private也许是其他修饰符).有一个方法叫做getModifiers(),但我不清楚如何使用它来确定应用于特定的修饰符的类型MethodDeclaration.我的代码发布在下面,如果您有任何想法如何继续,请告诉我.

import java.util.ArrayList;
import java.util.List;

import org.eclipse.jdt.core.dom.ASTVisitor;
import org.eclipse.jdt.core.dom.MethodDeclaration;

public class MethodVisitor extends ASTVisitor {

    private List<MethodDeclaration> methods;

    // Constructor(s)
    public MethodVisitor() {
        this.methods = new ArrayList<MethodDeclaration>();
    }

    /**
     * visit - this overrides the ASTVisitor's visit and allows this
     * class to visit MethodDeclaration nodes in the AST.
     */
    @Override
    public boolean visit(MethodDeclaration node) {
        this.methods.add(node); …
Run Code Online (Sandbox Code Playgroud)

java modifier abstract-syntax-tree visitor-pattern eclipse-jdt

3
推荐指数
1
解决办法
2306
查看次数

使用JDT将注释附加到类

我有一个包含以下内容的IFile:

package com.example;
//@SimpleAnnotation(Blab.ckass)
//@CustomAnnotation(arg1 = Blup.class , arg2 = Blup.Row.class)
public class SimpleClassWithAnnotation {

}
Run Code Online (Sandbox Code Playgroud)

如何在类中添加注释(注释的注释)?我试图使用这个线程的解决方案,但源不会改变.这是我使用的代码片段:

    final ASTParser parser = ASTParser.newParser(AST.JLS3);
    parser.setSource(this.cu);
    ICompilationUnit cu = JavaCore.createCompilationUnitFrom(this.ifile);
    final CompilationUnit astRoot = (CompilationUnit) parser.createAST(null);
    final AST ast = astRoot.getAST();
    astRoot.recordModifications();
    final NormalAnnotation newNormalAnnotation = astRoot.getAST().newNormalAnnotation();
    newNormalAnnotation.setTypeName(astRoot.getAST().newName("AnnotationTest"));
Run Code Online (Sandbox Code Playgroud)

这是尝试添加一个简单的注释@AnnotationTest.但是我需要这样的东西:@CustomAnnotation(arg1 = Blup.class , arg2 = Blup.Row.class)

提前致谢 !

java annotations eclipse-plugin abstract-syntax-tree eclipse-jdt

3
推荐指数
1
解决办法
2655
查看次数

如何使用eclipse JDT插件

我安装了JDT插件(我正在运行Eclipse 4.2.1),但Eclipse无法识别某些类型和类.例如,我得到"CompilationUnit无法解析为类型".我是否必须导入Eclipse不建议的内容?

java eclipse abstract-syntax-tree eclipse-jdt

3
推荐指数
1
解决办法
3325
查看次数

如何获取JDT中某个方法的所有可见变量

我想开发一个Eclipse插件,它可以获取特定方法的所有可见变量.例如:

public class testVariable {  
    String test1;  
    Object test2;
        void method_test1(){
            int test3,test4;
        }
        void method_test2(){
            int test5,test6;
            //get variable here!!!!
        }
}
Run Code Online (Sandbox Code Playgroud)

我只想得到可见的变量是:test1, test2,test5,test6在方法中method_test2.我能做什么?

eclipse-plugin eclipse-jdt

3
推荐指数
1
解决办法
876
查看次数

Eclipse插件 - 如何获得最后一个编辑器

我正在编写一个eclipse插件,它通过几个按钮向用户公开了一个视图.在单击任何按钮时,我想将某个注释粘贴到用户当前正在工作的编辑器窗口以及他指向的光标位置.

用户单击该按钮后,编辑器窗口将不再具有焦点,并且以下代码不起作用.

workbench.getActiveWorkbenchWindow().getActivePage().getActiveEditor()
Run Code Online (Sandbox Code Playgroud)

如何在用户单击按钮之前检测用户工作的编辑器窗口和光标位置?

eclipse eclipse-plugin text-editor eclipse-jdt

3
推荐指数
1
解决办法
1198
查看次数

Eclipse插件开发:如何在Eclipse编辑器中监听事件

我正在尝试开发一个eclipse插件。我了解这件事的基础知识。

在示例插件模板中,当我们在测试 Eclipse 实例中单击菜单项(或在本例中为下图中带有 Eclipse 图标的按钮)时,将执行SampleHandler.java的执行方法,并出现下图所示的弹出窗口。

在此输入图像描述

每当我在代码编辑器中按某个键(比如退格键)而不是单击任何菜单项(或按钮)时,我想调用“执行”方法。

SampleHandler.java

 public class SampleHandler extends AbstractHandler {

    public SampleHandler() {
    }

    /**
     * the command has been executed, so extract extract the needed information
     * from the application context.
     */
    public Object execute(ExecutionEvent event) throws ExecutionException {
        IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
        MessageDialog.openInformation(
                window.getShell(),
                "Sdfsdfsadf",
                "Hello, Eclipse world");
        return null;
    }
   }
Run Code Online (Sandbox Code Playgroud)

我尝试了其他帖子中给出的建议,但无法实现所需的功能。

根据我对上面一行中引用的帖子的理解,我尝试了下面的代码 -

    package eventlisten.handlers;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage; …
Run Code Online (Sandbox Code Playgroud)

eclipse events eclipse-pde eclipse-plugin eclipse-jdt

3
推荐指数
1
解决办法
4560
查看次数

Eclipse插件开发:不鼓励访问:由于对所需库的限制,EclipseStarter类型无法访问

我知道"阻止访问"应该是什么意思:你正在使用内部库,不在公共API中的东西,而你根本就不应该使用它.

现在,据我所知,包"org.eclipse.osgi.util"中的类EclipseStarter是公共API的一部分.我引用:

This package specifies API to start the platform.
Clients may use the EclipseStarter loader class to start the platform. 
The EclipseStarter class is the only defined API in this package.
Run Code Online (Sandbox Code Playgroud)

来源:http://help.eclipse.org/helios/index.jsp?topic =%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fosgi%2Futil%2Fpackage-summary.html

EclipseStarter类的详细信息页面指出:

Special startup class for the Eclipse Platform. This class cannot be instantiated; 
all functionality is provided by static methods.

Note that the fields on this class are not API.
Run Code Online (Sandbox Code Playgroud)

我读过:方法是开放的吗?

我的代码:

import org.eclipse.core.runtime.adaptor.EclipseStarter;
Run Code Online (Sandbox Code Playgroud)

这个已经发出警告"不鼓励访问:由于对所需库[path-to-eclipse]\plugins\org.eclipse.osgi_3.7.2.v20120110-1415.jar的限制,EclipseStarter类型无法访问"

我使用该类的代码:

try {
    EclipseStarter.shutdown();
    EclipseStarter.startup(null, null);
} catch …
Run Code Online (Sandbox Code Playgroud)

eclipse eclipse-pde eclipse-plugin eclipse-jdt

2
推荐指数
1
解决办法
3298
查看次数

使用JDT解析工作空间时出现"Workspace已关闭"错误

我想编写一个Java应用程序,它在我的工作区中显示项目的所有名称.但我的程序总是注意如下.

Exception in thread "main" java.lang.IllegalStateException: Workspace is closed.
at org.eclipse.core.resources.ResourcesPlugin.getWorkspace(ResourcesPlugin.java:411)
at myPackage.ProjectVisitor.<init>(ProjectVisitor.java:9)
at myPackage.ProjectVisitor.main(ProjectVisitor.java:16)
Run Code Online (Sandbox Code Playgroud)

以下是我创建自己的应用程序的步骤:

  1. 安装Java开发工具(JDT)

  2. 创建一个满足以下所有选项的空白eclipse插件:

    • Eclipse版本:3.5或更高版本
    • 执行环境:JavaSE-1.8
    • 富客户端应用程序?(选择NO)
  3. 添加名为org.eclipse.core.resources_3.10.1.v20150725-1910.jar的 .jar

  4. 按如下方式创建ProjectVisitor.java.

    import org.eclipse.core.resources.IProject;
    import org.eclipse.core.resources.ResourcesPlugin;
    public class ProjectVisitor {
        public ProjectVisitor() {
            IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
            for (IProject project : projects) {
                // do something to display its name
            }
        }
        public static void main(String[] args) {
            ProjectVisitor m = new ProjectVisitor();
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  5. 作为"Java应用程序"运行.

请帮我.提前致谢.

java eclipse-plugin abstract-syntax-tree eclipse-jdt

2
推荐指数
1
解决办法
593
查看次数