2014-02-20 13 views
2

隨着Rascal我想創建另一個Eclipse項目的M3模型。 我嘗試加載的java項目稱爲eLib,它在eclipse中打開,我也可以運行該項目。該項目位於我的工作區中。 但是,如果我用下面的命令在我的流氓控制檯(在Eclipse插件):IllegalArgumentException在createM3FromEclipseProject

import lang::java::m3::Core; 
import lang::java::jdt::m3::Core; 
myModel = createM3FromEclipseProject(|project://eLib|); 

我得到以下錯誤:

|rascal://lang::java::m3::AST|(6315,172,<156,0>,<158,87>): Java("IllegalArgumentException","Path must include project and resource name: /eLib") 
at org.eclipse.core.runtime.Assert.isLegal(|file:///Assert.java|(0,0,<63,0>,<63,0>)) 
at org.eclipse.core.internal.resources.Workspace.newResource(|file:///Workspace.java|(0,0,<2164,0>,<2164,0>)) 
at org.eclipse.core.internal.resources.Container.getFolder(|file:///Container.java|(0,0,<215,0>,<215,0>)) 
at org.rascalmpl.eclipse.uri.ProjectURIResolver.resolve(|file:///ProjectURIResolver.java|(0,0,<107,0>,<107,0>)) 
at org.rascalmpl.eclipse.uri.ProjectURIResolver.getResourceURI(|file:///ProjectURIResolver.java|(0,0,<224,0>,<224,0>)) 
at org.rascalmpl.uri.URIResolverRegistry.getResourceURI(|file:///URIResolverRegistry.java|(0,0,<95,0>,<95,0>)) 
at org.rascalmpl.library.lang.java.m3.internal.EclipseJavaCompiler.setEnvironmentOptions(|file:///EclipseJavaCompiler.java|(0,0,<67,0>,<67,0>)) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(|file:///NativeMethodAccessorImpl.java|(0,0,<0,0>,<0,0>)) 
at setEnvironmentOptions(|rascal://lang::java::jdt::m3::Core|(762,7,<28,76>,<28,83>)) 
at $shell$(|stdin:///|(10,45,<1,10>,<1,55>)) 

我希望你可以幫我。

+0

奇怪的是,因爲這適用於許多其他人。你可以嘗試'myModel = createM3FromEclipseProject(| project:// eLib/|);'用額外的斜槓嗎?這是什麼樣的系統? Windows,Mac,Linux?哪個版本的Eclipse? – jurgenv

+0

現在我包含了額外的斜線,仍然是相同的錯誤。 我在一臺Windows 8 64位機器上工作。 Java的jdk 7更新51 64位。 Eclipse Kepler Service Release 1 64位(2.0.1.20130919-0803)。 另外,我添加了「import lang :: java :: io;」,但這也不是解決方案。 –

+0

我找到了解決問題的方法。我可以使用函數createM3FromDirectory,這個函數可以在我的設置上工作。但是,這是一種解決方法,而不是解決最初的問題。 –

回答

1

確保你試圖分析的項目是一個真正的Java項目(不是通用的eclipse項目),並且它編譯(項目中沒有紅色十字)。

相關問題