私は、Javaモデル(IProject
、ICompilationUnit
など)で簡単に設定できないという意味で、Eclipseプラグインの外でJDTのASTParser
を使用しようとしています。代わりに、ASTParser.setEnvironment(classpathEntries, sourcepathEntries, encoding, includeVMPath)を使用する必要があります。理論的にはうまくいくはずですが、ソースパスとクラスパスを動作させることはできません。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