# How to call Kotlin compiler to compile some Kotlin source files from Java?

**URL:** <https://discuss.kotlinlang.org/t/how-to-call-kotlin-compiler-to-compile-some-kotlin-source-files-from-java/872>\
**Category:** Uncategorized\
**Created:** [April 1, 2013, 3:41am UTC](https://discuss.kotlinlang.org/t/how-to-call-kotlin-compiler-to-compile-some-kotlin-source-files-from-java/872 "2013-04-01T03:41:15Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![freewind](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/freewind/32/1479_2.png) [@freewind](https://discuss.kotlinlang.org/u/freewind)\
**Post date:** [April 1, 2013, 3:41am UTC](https://discuss.kotlinlang.org/t/how-to-call-kotlin-compiler-to-compile-some-kotlin-source-files-from-java/872/1 "2013-04-01T03:41:15Z")

</div>

I want to call Kotlin compiler to comiple some Kotlin source files from Java, how to do it?

I mean to invoke some classes and functions, not calling command line from Java.

---

<div class="post-metadata">

**Author:** ![abreslav](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/abreslav/32/8279_2.png) [@abreslav](https://discuss.kotlinlang.org/u/abreslav)\
**Post date:** [April 1, 2013, 9:14am UTC](https://discuss.kotlinlang.org/t/how-to-call-kotlin-compiler-to-compile-some-kotlin-source-files-from-java/872/2 "2013-04-01T09:14:13Z")

</div>

Have a look at the sources of build tools that run Kotlin:

For example, here’s what Maven does: [https://github.com/JetBrains/kotlin/blob/master/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java](https://github.com/JetBrains/kotlin/blob/master/libraries/tools/kotlin-maven-plugin/src/main/java/org/jetbrains/kotlin/maven/KotlinCompileMojoBase.java)

---

<div class="post-metadata">

**Author:** ![freewind](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/freewind/32/1479_2.png) [@freewind](https://discuss.kotlinlang.org/u/freewind)\
**Post date:** [April 1, 2013, 10:20am UTC](https://discuss.kotlinlang.org/t/how-to-call-kotlin-compiler-to-compile-some-kotlin-source-files-from-java/872/3 "2013-04-01T10:20:42Z")

</div>

It seems Kotlin compiler can only accept source dirs and output the generated bytecode to some dirs. Is it possible to pass some kotlin files and get the generate bytecode directly?

---

<div class="post-metadata">

**Author:** ![abreslav](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/abreslav/32/8279_2.png) [@abreslav](https://discuss.kotlinlang.org/u/abreslav)\
**Post date:** [April 1, 2013, 10:42am UTC](https://discuss.kotlinlang.org/t/how-to-call-kotlin-compiler-to-compile-some-kotlin-source-files-from-java/872/4 "2013-04-01T10:42:46Z")

</div>

Yes, you can add individual source files instead of dirs. This does not apply to outputs, because we generate more class files than there're input source files (you can declare many classes in a source file).

---

<div class="post-metadata">

**Author:** ![freewind](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/freewind/32/1479_2.png) [@freewind](https://discuss.kotlinlang.org/u/freewind)\
**Post date:** [April 1, 2013, 10:44am UTC](https://discuss.kotlinlang.org/t/how-to-call-kotlin-compiler-to-compile-some-kotlin-source-files-from-java/872/5 "2013-04-01T10:44:14Z")

</div>

Can we get generated bytecode back directly, instead of .class files?

---

<div class="post-metadata">

**Author:** ![abreslav](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/abreslav/32/8279_2.png) [@abreslav](https://discuss.kotlinlang.org/u/abreslav)\
**Post date:** [April 1, 2013, 10:48am UTC](https://discuss.kotlinlang.org/t/how-to-call-kotlin-compiler-to-compile-some-kotlin-source-files-from-java/872/6 "2013-04-01T10:48:55Z")

</div>

Yes, have a look at how class files are written

---

<div class="post-metadata">

**Author:** ![freewind](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/freewind/32/1479_2.png) [@freewind](https://discuss.kotlinlang.org/u/freewind)\
**Post date:** [April 1, 2013, 10:50am UTC](https://discuss.kotlinlang.org/t/how-to-call-kotlin-compiler-to-compile-some-kotlin-source-files-from-java/872/7 "2013-04-01T10:50:00Z")

</div>

Thank you!
