Afin de créer mon premier projet Kotlin simple dans Eclipse, j'ai suivi les étapes du tutoriel Getting Started with Eclipse Luna du site officiel de Kotlin, à savoir:
main
Cependant, je reçois toujours l'erreur suivante dans la console Eclipse:
Erreur: impossible de trouver ou de charger la classe principale HelloKt
J'ai revérifié la configuration d'exécution de mon projet, et elle définit la "classe principale" comme HelloKt
(dont je suis sûr à 100% qu'elle n'existe pas). De plus, lorsque je clique sur le bouton "Rechercher", le seul élément trouvé par Eclipse est HelloKt - (default package)
(qui, là encore, n'existe pas).
Par souci d'exhaustivité, trouvez ci-dessous le code pour hello.kt
fichier:
fun main(args: Array<String>) {
println("Hello, World")
}
J'ai remarqué les divergences suivantes entre le tutoriel et ce que j'ai fait:
jdk1.6.0_45
, pendant que j'utilise jdk1.7.0_79
.Notez que j'utilise la dernière version du plugin Kotlin Eclipse, donc ce n'est pas le même cas que dans ce post . Ce sont les versions de mon installation actuelle:
L'une de ces divergences peut-elle être à l'origine de l'erreur lors de l'exécution de l'application?
Voyez-vous/connaissez-vous une cause potentielle ou un bug connu concernant ce scénario?
MISE À JOUR (14 mai 2017)
Testé avec Eclipse Neon.3 (Eclipse.buildId = 4.6.3.M20170301-0400), JDK 1.8.0_111, Kotlin 0.8.2.v20170314-0957 (kotlin-Eclipse-policy 0.8.2.v20170314-0957, kotlin-weaving -fonction 0.8.2.v20170314-0957, Equinox Weaving SDK 1.2.0.201701131634). Le problème persiste.
Testé avec Java 8 (1.8.0_144) et la version Eclipse Oxygen.1a (4.7.1a - build id 20171005-1200) avec les versions de plug-in suivantes:
Kotlin 0.8.2.v20170314-0957 org.jetbrains.kotlin.feature.feature.group JetBrains
kotlin-Eclipse-policy 0.8.2.v20170314-0957 org.jetbrains.kotlin.policy.feature.group JetBrains
kotlin-weaving-feature 0.8.2.v20170314-0957 org.jetbrains.kotlin.weaving.feature.feature.group JetBrains
Tout a fonctionné comme prévu , sans avoir besoin de créer un espace de travail séparé et/ou d'utiliser Kotlin File
au lieu de Kotlin Class
:
Pour moi, cela ne s'est produit qu'une seule fois. Je pense que c'est un problème du plugin Kotlin, lorsque vous créez un fichier Kotlin et essayez de l'exécuter. Essayez la "nouvelle classe Kotlin" collez le même contenu et voyez si cela fonctionne. Après cela, vous devriez pouvoir exécuter les deux fichiers comme cela m'est arrivé.
J'ai les mêmes problèmes que toi. J'ai essayé de nombreuses façons mais ne fonctionne pas (comme désinstaller le plugin, puis réinstaller le plugin, supprimer le projet et créer un nouveau projet ...)
Comment réparer: J'ai créé un nouvel espace de travail et reconfiguré le projet helloworld. Je vois ce fichier de classe généré et je peux l'exécuter normalement.
Notez que nous créons un nouvel espace de travail et non un projet. Ce que je remarque, c'est que l'espace de travail contient un dossier .metadata qui peut contenir beaucoup d'informations pour Eclipse.
Cela a fonctionné pour moi .... Si vous allez dans Fenêtre -> Afficher la vue -> Navigateur, il vous montre plus une disposition physique de votre espace de travail plutôt que la vue logique de l'Explorateur de packages. Cliquez avec le bouton droit sur le fichier kotlin avec la fonction principale définie et cliquez sur Exécuter en tant que -> Application Kotlin. A fonctionné pour moi, bien que je tuerais pour pouvoir utiliser une configuration régulière, mais telle est la vie .....
.project
fichier, en changeant juste la section suivante pour compiler le fichier Kotlin dans le même emplacement que les fichiers Java.<linkedResources>
<link>
<!--name>kotlin_bin</name-->
<type>2</type>
<locationURI>org.jetbrains.kotlin.core.filesystem:/FindUniqueStrings/bin</locationURI>
</link>
</linkedResources>
Gardez à l'esprit:
name
. Sinon, Kotlin complier crée le dossier src kotlin_bin
et place votre fichier kotlin dans ce dossier et le runtime kotlin ne le trouvera pas.FindUniqueStrings
. Le vôtre sera différent.Navigator
.J'ai eu le même problème, il a été résolu en supprimant la variable d'environnement Java_HOME.
J'ai défini un ancien dossier JDK que j'ai supprimé dans la variable d'environnement Java_HOME.