Kotlin Eclipse Plug-In: jvmTarget einstellen

English version below

Beim Versuch, ein Java/Kotlin-Projekt in Eclipse zu importieren, erhielt ich die folgende Fehlermeldung:

Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6.

Leider konnte ich mit Google keine sinnvolle Lösung zu dem Problem finden, lediglich eine kurze ergebnissoffene Diskussion welche auf einen Pull-Request verweist. Zwar ist der Pull-Request längst gemerged, in den Einstellungen sehe ich aber nichts davon. Offenbar haben die Entwickler vergessen, den Einstellungsdialog entsprechend zu erweitern.

Das jvmTarget lässt sich dennoch einstellen, in dem das entsprechende Konfigurationsfile manuell geändert wird.

Die Datei liegt im Projektverzeichnis unter .settings/org.jetbrains.kotlin.core.prefs und muss wie folgt modifiziert werden:

globalsOverridden=true
jvmTarget=JVM_1_8

Mit der oberen Option aktiviert man projektspezifische Einstellungen. Die untere Option setzt das jvmTarget auf den gewünschten Wert. Mögliche Werte sind hier zu finden.

English Version

Kotlin Eclipse Plug-In: how to set jvmTarget for a project

When I recently tried to import a Java/Kotlin project into eclipse, I got the following error message:

Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6.

Google could not give me an answer how to solve this issue. The only useful information I found was a short discussion in which a pull request was mentioned. Although the pull request is already merged, there’s no setting in eclipse to change the jvmTarget. Looks like the developer forgot to implement the GUI for this settings.

Nevertheless, with the change it’s possible to set the jvmTarget by changing a configuration file manually. The file is located within project folder at .settings/org.jetbrains.kotlin.core.prefs and has to be changed in this way:

globalsOverridden=true
jvmTarget=JVM_1_8

The first option enables project specific Kotlin settings. The latter sets the actual jvmTarget. Valid options can be found here.