【问题标题】:How can I import eclipse JDT classes in a project如何在项目中导入 Eclipse JDT 类
【发布时间】:2010-09-10 18:13:41
【问题描述】:

我想在一个类中进行以下导入。

import org.eclipse.jdt.core.dom.*;  
import org.eclipse.jdt.core.compiler.CharOperation;  
import org.eclipse.jdt.core.compiler.IProblem;  
import org.eclipse.jdt.internal.compiler.ClassFile;  
import org.eclipse.jdt.internal.compiler.CompilationResult;  
import org.eclipse.jdt.internal.compiler.Compiler;    
import org.eclipse.jdt.internal.compiler.DefaultErrorHandlingPolicies;  
import org.eclipse.jdt.internal.compiler.ICompilerRequestor;  
import org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader;  
import org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException;  
import org.eclipse.jdt.internal.compiler.env.ICompilationUnit;  
import org.eclipse.jdt.internal.compiler.env.INameEnvironment;  
import org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer;  
import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;  
import org.eclipse.jdt.internal.compiler.problem.DefaultProblemFactory;  
import org.eclipse.jface.text.Document;  
import org.eclipse.jface.text.BadLocationException;  
import org.eclipse.text.edits.TextEdit;  

如何在 Eclipse 中导入 JDT? 干杯。

【问题讨论】:

  • 是否有任何解决方案适合您?好奇你最后做了什么。
  • 您要接受答案了吗?或者他们都没有工作?如果是这样,那么请对这些答案发表评论或对您的问题进行编辑以解释为什么这些答案不起作用。

标签: eclipse eclipse-jdt


【解决方案1】:

我想我找到了一种更简单的方法:

  • 在 Package Explorer 中右键单击您的项目;
  • 选择“构建路径...”;
  • 选择“配置构建路径”;
  • 选择“库”选项卡;
  • 点击“添加变量...”按钮;
  • 在列表框中,选择“ECLIPSE_HOME”条目,然后单击“扩展”按钮;
  • 在列表框中,打开“plugins”文件夹条目,向下滚动,然后按住 shift 键单击文件列表中的所有 org.eclipse.jdt.* JAR 文件下方文件夹;
  • 单击“确定”,直到完全退出。

应该可以的。

【讨论】:

  • 这可能无法在 Eclipse 迁移中幸存下来,因为您将在类路径中添加特定于版本的 JDT JAR 文件。
  • JDT 可以在独立应用程序中使用,但最好在插件中使用它。因为您还经常需要仅在插件中支持的 Java 模型。
  • 我在本地 P2 存储库中找到了 jar 文件:例如%USERPROFILE%\.p2\pool\plugins
  • 只需添加到pom org.eclipse.jdt.core.compilerecj4.6.1
【解决方案2】:

除非我误解了你,你只需要在你的类路径中包含 JDT JAR 文件;它们都在您的 Eclipse 插件目录中可用。因此,对于您的项目,在 Package Explorer 中右键单击项目名称,转到 Build Path... 子菜单,然后选择 Configure Build Path。然后在“库”选项卡中,使用“添加外部 JAR”按钮从 Eclipse 插件目录中添加每个相关的 JAR 文件。

【讨论】:

  • 有没有办法将 Eclipse 的整个路径添加到类路径和/或构建路径,而不是添加每个单独的 jar?
  • 查看我的下一个答案——我想我找到了更简单的方法。
【解决方案3】:

如果您正在为 Eclipse 编写插件,那么您实际上不应该尝试实例化 internal 包。据此API Rules of Engagement

坚持使用官方记录的 API。仅参考组件的已发布 API Javadoc 中记录的包。永远不要引用属于另一个名称中包含“内部”的组件的包——这些永远不是 API。永远不要引用没有发布 API Javadoc 的包——这些也不是 API。

对于其他人,将包名称添加到清单中的 Import-Package 条目中。

JDT 中有扩展点,但如果你想做的事情不在这些范围之内,那恐怕你就不走运了。

如果您只是想在代码中使用编译器,而不依赖于 JDK(即在 JRE 上),那么我会考虑使用更独立的基于 Java 的 Java 编译器,例如 Janino

【讨论】:

    【解决方案4】:

    如果您需要这些类,您可能已经在一个插件项目中。您应该能够通过在 Eclipse 抱怨导入的行上应用快速修复“修复项目设置...”(Ctrl+1) 来导入这些类。这会将所需的插件添加到 META-INF 目录中的 MANIFEST.MF 文件(在您的情况下为 org.eclipse.jdt.core 和 org.eclipse.jface.text)。您也可以在 MANIFEST.MF 文件中手动添加它们。如果您的项目不是插件项目(并且您没有 MANIFEST.MF 文件),您可以先右键单击项目 -> PDE 工具 -> 将项目转换为插件项目来转换它。如果您以正常方式(“配置构建路径”)向插件项目添加依赖项,则类加载在运行时将无法正常工作(尽管它会编译)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多