在运行时编译Java和Scala

在运行时编译Java和Scala,java,scala,Java,Scala,我试图在scala中的运行时编译一些相互依赖的java和scala代码。我原以为scala运行时编译器(反射API)可以像scala的compiletime编译器一样编译Java,但事实证明它不能识别Java的语法 然后我尝试用java反射编译java代码,并将它们添加到类路径中,然后编译依赖于前面编译的java代码的scala代码 对于混合了Java和Scala的多个文件,有没有一种方法可以更可靠地做到这一点?Java代码可能依赖于Scala代码,而某些Scala代码也可能依赖于某些Java代

我试图在scala中的运行时编译一些相互依赖的java和scala代码。我原以为scala运行时编译器(反射API)可以像scala的compiletime编译器一样编译Java,但事实证明它不能识别Java的语法

然后我尝试用java反射编译java代码,并将它们添加到类路径中,然后编译依赖于前面编译的java代码的scala代码


对于混合了Java和Scala的多个文件,有没有一种方法可以更可靠地做到这一点?Java代码可能依赖于Scala代码,而某些Scala代码也可能依赖于某些Java代码…

您可以使用maven构建项目。代码由用户在运行时提供。您可以运行
sbt
进程来实现这一点。sbt当然编译混合的Java/Scala项目。但是,我认为您需要将源代码保存在磁盘上的一个目录中,sbt的预热时间可能并不重要。这取决于应用程序需要的复杂度和速度。