我正在研究一個需要根據指定的語言(語言將只有函數定義)生成Java類的項目。 JvmModelInferrer/IGenerater需要隱式調用java項目。調用JvmModelInferrer/Generator從Java項目生成代碼時的NullPointerException
按照How to invoke Xtext parser/JvmModelInferrer from a Java project的帖子給出的步驟,但不幸的是EclipseResourceFileSystemAccess2.generateFile()
正在投擲NullPointerException
。
用於生成代碼:
public class Generator {
private static IGenerator generator;
public static void main(String[] args) {
// this line registers the EMF for our DSL
Injector injector = new RequestDslStandaloneSetup().createInjectorAndDoEMFRegistration();
ResourceSet rs = new ResourceSetImpl();
File file = new File(
"D:/Xtext/XtextFormIntegration/runtime-XtextFormNC/XtextFormCar/lang.request");
Resource resource = rs.getResource(URI.createURI(file.toURI().toString()), true);
//setup the generator
generator = injector.getInstance(IGenerator.class);
//setup the file system access
final EclipseResourceFileSystemAccess2 fsa = new EclipseResourceFileSystemAccess2();
generator.doGenerate(resource, fsa);
}
}
唯一的例外是:
Exception in thread "main" java.lang.NullPointerException
at org.eclipse.xtext.builder.EclipseResourceFileSystemAccess2.generateFile(EclipseResourceFileSystemAccess2.java:156)
at org.eclipse.xtext.generator.AbstractFileSystemAccess.generateFile(AbstractFileSystemAccess.java:75)
at org.eclipse.xtext.xbase.compiler.JvmModelGenerator._internalDoGenerate(JvmModelGenerator.java:201)
at org.eclipse.xtext.xbase.compiler.JvmModelGenerator.internalDoGenerate(JvmModelGenerator.java:1756)
at org.eclipse.xtext.xbase.compiler.JvmModelGenerator.doGenerate(JvmModelGenerator.java:181)
at de.itemis.utils.jface.viewers.Generator.main(Generator.java:41)
需要你在解決上述問題的幫助。
感謝您的期待。
哪一行是156? – csmckelvey
URI是一個類嗎? – panoptical
是的,包是org.eclipse.emf.common.util.URI – PriyaSabut