我正在使用Jetbrains MPS开发DSL。使用起来并不明显,但是到目前为止,我在设计部分上取得了成功。假设该语言是可执行的,则可以右键单击一个“解决方案”节点并“运行”它(可以扩展execute.util)。另外,我使用单独开发的jar作为库(供生成器使用)。
我构建了一个新项目,以尽可能简单地对其进行测试,并在生成器中添加了一些额外的节点和循环,该错误发生并且无法撤消。
据我所知,有几种可能的错误源。
执行“运行”会导致以下错误:
error: could not find or load main class MySolution.package.map_concept
你们中有些人对此有经验吗?告诉我,是否还有其他有用的信息。
似乎您已将jar文件作为模型添加到语言中,这使得该文件对于解决方案不可见。按照https://confluence.jetbrains.com/display/MPSD32/Getting+the+dependencies+right#Gettingthedependenciesright-AddingexternalJavaclassesandjarstoaprojectruntimesolutions上的说明进行操作,并创建一个单独的库解决方案对我有用。
对我来说,这看起来像是发电机的问题。您是否完全重建了项目-右键单击结构树中的“项目”节点?根映射模板正确吗?如果您可以分享您的项目,我可以看一下。
即使您按照其他答案中的说明进行操作,也可以节省我一些时间,也可能为其他人解决此问题的小技巧。
当在Java选项卡上包含库后,提示您将库添加到模块中时,如果您已将它们包括在“通用”选项卡的第一位,则关闭该窗口。否则,尽管添加了两次,但它们只列出一次,导致编译失败。