Я пытаюсь использовать JDT's ASTParser
вне плагина eclipse, что означает, что я не могу легко настроить его через Java-модель (IProject
, ICompilationUnit
и т. Д.). Вместо этого мне нужно использовать ASTParser.setEnvironment(classpathEntries, sourcepathEntries, encoding, includeVMPath). Что должно быть хорошо в теории, но я не могу заставить sourcepaths и classpaths работать.Настройка ASTParser Окружающая среда вручную
Какие аргументы они принимают точно? Я бы предположил абсолютные пути к JAR для пути к классам и абсолютные пути ко всем исходным файлам (.java). Однако, следующее не работает (ошибка ниже):
public static void main(String[] args) {
String[] sourceFilePaths = new String[] {"C:\\Users\\Aljoscha\\Desktop\\workspaceba\\ExampleProject\\src\\examplepackage\\ExampleClass.java"};
String[] classpathEntries = new String[] {"C:\\Program Files\\Java\\jdk1.8.0_31\\src.zip"};
String[] sourcepathEntries = new String[] {"C:\\Users\\Aljoscha\\Desktop\\workspaceba\\ExampleProject\\src\\examplepackage\\ExampleClass.java"};
ASTParser parser = ASTParser.newParser(AST.JLS8);
parser.setResolveBindings(true);
parser.setBindingsRecovery(true);
parser.setEnvironment(classpathEntries, sourcepathEntries, null, false);
MyFileASTRequestor requestor = new MyFileASTRequestor();
parser.createASTs(sourceFilePaths, null, null, requestor, null);
}
Это дает мне следующую ошибку:
Exception in thread "main" java.lang.IllegalStateException: invalid environment settings
at org.eclipse.jdt.core.dom.ASTParser.getClasspath(ASTParser.java:261)
at org.eclipse.jdt.core.dom.ASTParser.createASTs(ASTParser.java:993)
at asg.Foo.main(Foo.java:22)
Кто-нибудь знает, что перейти к функции setEnvironment()?
Переменная 'sourcepathEntries' должна, скорее всего, содержать только каталоги. Например. '' C: \\ Users \\ Aljoscha \\ Desktop \\ workspaceba \\ ExampleProject \\ src "' – sevenforce