Après investigation, ton problème est dû à la cross-compilation entre deux versions du JDK.
Explications
Tu essaies de compiler des sources Java en syntaxe 8 pour qu'elles soient compilées dans un bytecode dont le format sera à destination d'une JRE 8.
Or, tu opères cette compilation depuis un JDK 10. Que se passe-t-il alors ?
Simplement que le compilateur t'avertie que la JRE 8 a une certaine API et que ton JDK 10 contient l'API 8 + toutes les classes qui ont été ajoutées dans Java 9 et 10. Ce faisant, si tu venais à utiliser une classe n'existant que dans Java 10, alors même si le bytecode que le compilateur produit à partir de tes sources est à destination de Java 8, tu ne pourras pas lancer ton programme et tu auras une ClassNotFoundException.
Le JDK 10 ne pouvant pas savoir quelles classes ne se trouvent que dans Java 10, il te demande un bootstrap classpath, c'est-à-dire un chemin vers le fichier rt.jar d'un JDK 8, afin de ne te permettre de n'utiliser que des classes de l'API de Java 8 dans ton code.
Ainsi, le JDK 10 n'utilisera plus son rt.jar à lui qui est trop récent, mais l'ancien.
Solution
Ajouter dans la configuration du maven-compiler-plugin l'option
Il faut aussi que la variable $JRE8_HOME soit définie dans ton OS.
Et voilà.
N.B : en ce qui concerne les modules de Java 9, c'était une fausse piste, mea maxima culpa !
Le tuto est clair est simple :
- Installer un JDK 8 dans le path => easy
- Récupérer et installer kotlin-native dans le path => easy
- Lancer la commande
kotlin-native -o my_exec my_files.kt
Et voilà
J'ai testé ce soir et ce fût un fail. Mais je recommancerai à partir de la première release. Je pense qu'une stack mixée entre Kotlin > bytecode > native peut devenir très intéressant. Et si on se rapproche des tailles d'occupation de la mémoire de Go pour des applications Java-like qui dispose de la même charge CPU, alors autant vous dire que je signe tout de suite !
Edit : j'ai retesté et GraalVM ne supporte pas les accents / espaces dans les chemins de fichiers (y compris celui où elle est installée). Bref ça marche bien et le gain en performance est miraculeux !
Un tutoriel expliquant comment démarrer avec JavaCC
Un autre compiler compiler. Je me renseigne toujours sur les outils du marché pour mon projet.
Un tutoriel assez complet expliquant comment utiliser TypeScript avec Webpack. NPM ne sert plus qu'à rapatrier les dépendances dans le répertoire node_modules
Depuis le temps que j'attendais un projet similaire !
Compiler ses aspects dans un jar (lib) et les utiliser ailleurs dans d'autres projets.
Spéciale casse-dédi à Animal qui pourra compiler ses scripts Bash. Bon le processus rend le shell non portable et plus lent, mais il a le mérite d’obfusquer le code.