fun run()

in src/main/kotlin/com/compiler/server/compiler/components/KotlinCompiler.kt [69:95]


    fun run(
        files: List<ProjectFile>,
        addByteCode: Boolean,
        args: String,
        userCompilerArguments: Map<String, Any>
    ): JvmExecutionResult {
        return execute(files, addByteCode, userCompilerArguments) { output, compiled ->
            val mainClass = JavaRunnerExecutor::class.java.name
            val compiledMainClass = when (compiled.mainClasses.size) {
                0 -> return@execute JvmExecutionResult(
                    exception = IllegalArgumentException("No main method found in project").toExceptionDescriptor()
                )

                1 -> compiled.mainClasses.single()
                else -> return@execute JvmExecutionResult(
                    exception = IllegalArgumentException(
                        "Multiple classes in project contain main methods found: ${
                            compiled.mainClasses.sorted().joinToString()
                        }"
                    ).toExceptionDescriptor()
                )
            }
            val arguments = listOfNotNull(compiledMainClass) + args.split(" ")
            javaExecutor.execute(argsFrom(mainClass, output, arguments))
                .asExecutionResult()
        }
    }