在MPS中运行语言解决方案时的错误

时间:2015-07-22 15:46:40

标签: dsl mps

我正在使用jetbrains MPS开发DSL。使用起来并不明显,但到目前为止,我已经成功完成了设计部分。 假设语言可执行(扩展execution.util),可以右键单击解决方案节点并“运行”它。另外,我使用一个单独开发的jar作为库(由生成器使用)。

我构建了一个新项目来测试,尽可能简单,在生成器中添加了一些额外的节点和循环,错误发生并且无法撤消。

据我所知,有几种可能的错误来源。

  • 依赖关系(在MPS中它们很棘手)
  • 我的罐子
  • 错误的缓存文件

执行“run”会导致以下错误:

error: could not find or load main class MySolution.package.map_concept

你们有些人有这方面的经验吗? 告诉我,如果有一些额外的信息会有所帮助。

3 个答案:

答案 0 :(得分:0)

对我而言,这看起来像是发电机的问题。您是否完全重建了项目 - 右键单击​​"项目"结构树中的节点? 根映射模板是否正确?如果你可以分享你的项目,我可以看看。

答案 1 :(得分:0)

您似乎已将jar文件作为模型添加到语言中,这使得该解决方案不可见。按照https://confluence.jetbrains.com/display/MPSD32/Getting+the+dependencies+right#Gettingthedependenciesright-AddingexternalJavaclassesandjarstoaprojectruntimesolutions的说明创建一个单独的库解决方案。

答案 2 :(得分:0)

即使您遵循其他答案中的说明,一条小技巧也可以节省我一些时间,也可能为其他人解决此问题。

当在“ Java”选项卡中包含库之后,提示您将库添加到模块时,请关闭窗口,如果您已将它们包括在“通用”选项卡的第一位。否则,尽管它们被添加了两次,但它们只列出一次,从而导致编译失败。