Как я могу импортировать классы затмения JDT в проекте - PullRequest
4 голосов
/ 18 сентября 2008

Я хочу выполнить следующие операции импорта в классе.

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;  

Как я могу импортировать JDT в Eclipse? Приветствия.

Ответы [ 4 ]

15 голосов
/ 18 сентября 2008

Я думаю, я нашел более простой способ сделать это:

  • щелкните правой кнопкой мыши свой проект в Package Explorer;
  • выберите «Build Path ...»;
  • выберите «Настроить путь сборки»;
  • выберите вкладку Библиотеки;
  • нажмите кнопку «Добавить переменную ...»;
  • в списке выберите запись «ECLIPSE_HOME» и нажмите кнопку «Расширить»;
  • в списке, откройте запись папки «plugins», прокрутите путь вниз и нажмите на Shift все файлы org.eclipse.jdt. * JAR, которые находятся в списке файлов под папки;
  • нажимайте OK, пока не вернетесь назад.

Это должно сделать это.

3 голосов
/ 18 сентября 2008

Если я не понимаю вас, вам просто нужно включить JAR-файлы JDT в ваш путь к классам; все они доступны в вашем каталоге плагинов Eclipse. Поэтому для вашего проекта щелкните правой кнопкой мыши имя проекта в Package Explorer, перейдите в подменю Build Path ... и выберите Configure Build Path. Затем на вкладке «Библиотеки» с помощью кнопки «Добавить внешние JAR-файлы» добавьте каждый из соответствующих JAR-файлов из каталога плагинов Eclipse.

2 голосов
/ 18 января 2009

Если вы пишете плагины для Eclipse, вам не следует пытаться создавать экземпляры пакетов internal. В соответствии с Правилами взаимодействия API

Придерживайтесь официально документированных API. Только ссылочные пакеты, которые документированы в опубликованном API Javadoc для компонента. Никогда не ссылайтесь на пакет, принадлежащий другому компоненту, который имеет «внутреннее» в своем имени - это никогда не API. Никогда не ссылайтесь на пакет, для которого нет опубликованного API Javadoc - это тоже не API.

Для остальных добавьте имя пакета в запись Import-Package в своем манифесте.

В JDT есть точки расширения, но если то, что вы хотите сделать, выходит за их пределы, то, боюсь, вам не повезло.

Если вы просто хотите использовать компилятор в своем коде, не полагаясь на JDK (то есть на JRE), то я хотел бы рассмотреть поставку с более автономным Java-компилятором на основе Java, таким как Janino .

1 голос
/ 18 сентября 2008

Если вам нужны эти классы, вы, вероятно, уже находитесь в проекте плагина. Вы сможете импортировать эти классы, применив быстрое исправление «Исправить настройку проекта ...» (Ctrl + 1) в строке, где Eclipse жалуется на импорт. Это добавит необходимые плагины в ваш файл MANIFEST.MF в каталоге META-INF (org.eclipse.jdt.core и org.eclipse.jface.text в вашем случае). Вы также можете добавить их вручную в свой файл MANIFEST.MF. Если ваш проект не является проектом плагина (и у вас нет файла MANIFEST.MF), вы можете преобразовать его, щелкнув правой кнопкой мыши по проекту -> Инструменты PDE -> Сначала преобразовать проекты в проект плагина. Если вы добавляете зависимости к проектам подключаемых модулей обычным способом («настройка пути сборки»), загрузка классов не будет работать должным образом во время выполнения (хотя она будет компилироваться).

...