2017-09-30 4 views
4

Je me suis récemment intéressé - comme aujourd'hui - à apprendre à programmer avec clojure. Maintenant, après avoir installé la dernière version de jdk java et téléchargé le script leiningen, j'ai suivi les instructions d'installation pour ce dernier, en particulier ceux donnés à: http:/www.lispcast.com/clojure-ubuntu.leiningen ne peut pas s'exécuter à cause de l'exception java class

Maintenant, après l'exécution lein version et le téléchargement du fichier jar approprié, le programme se termine avec une erreur à propos d'une classe introuvable. L'erreur en question se lit comme suit:

Exception dans le thread "principal" java.lang.ExceptionInInitializerError
à java.base/java.lang.Class.forName0 (Native Method)
à java.base/java.lang.Class.forName (Class.java:375)>
à clojure.lang.RT.classForName (RT.java:2168)
à clojure.lang.RT.classForName (RT.java:2177)
à clojure.lang.RT.loadClassForName (RT.java:2196)
à clojure.lang.RT.load (RT.java:443)
à clojure.lang.RT.load (RT.java:419)
à clojure.core charge $ fn__5677.invoke de $ (core.clj: 5893)
à clojure.core $ load.invokeStatic (core.clj: 5892)
à clojure.core $ load.doInvoke (core.clj :. 5876)
à clojure.lang.RestFn.invoke (RestFn.java:408)
à clojure.core__init.load (Source inconnue)
à clojure.core__init (Unknown Source)
à java.base/java.lang.Class.forName0 (méthode native)
à java.base/java.lang.Class.forName (Class.java:375)
à clojure.lang.RT.classForName (RT.java:2168)
à clojure.lan g.RT.classForName (RT.java:2177)
à clojure.lang.RT.loadClassForName (RT.java:2196)
à clojure.lang.RT.load (RT.java:443)
à clojure .lang.RT.load (RT.java:419)
à clojure.lang.RT.doInit (RT.java:461)
à clojure.lang.RT. (RT.java:331)
à clojure . .main (main.java:20)
causés par: java.lang.ClassNotFoundException: java/SQL/Horodatage
à java.base/java.lang.Class.forName0 (Méthode natif)
à java.base /java.lang.Class.forName(Class.java:375)
à clojure. lang.RT.classForName (RT.java:2168)
à clojure.lang.RT.classForNameNonLoading (RT.java:2181)
à clojure.instant loading__5569__auto de $ ____ 6869.invoke (instant.clj: 9)
à clojure .instant__init.load (Source inconnue)
à clojure.instant__init. (Source inconnue)
... 23 plus

mon java 9 jdk est installé dans /usr/lib/jvm/java-9-oracle/bin/java, avec mon jeu JAVA_HOME variable mais /usr/lib/jvm/java-9-oracle J'ai aussi essayé /usr/lib/jvm/java-9-oracle/bin, juste au cas où. Je cours xubuntu 16.04.3, si cela est d'importance. J'ai essayé de redéfinir java jdk par défaut sur openjdk qui est fourni avec xubuntu mais cela n'a pas fonctionné non plus.En aparté, tout le problème est venu parce que j'ai essayé d'exécuter le REPL dans intellij après l'installation du plugin cursive, qui n'a pas fonctionné. J'ai alors supposé que c'était peut-être parce que je n'avais pas installé leiningen au préalable (je pensais que l'IDE et la cursive le feraient empiler). Cependant, les informations réelles sur ce que l'intellij et le clojure nécessitent pour fonctionner avec succès m'ont échappé, car une grande partie de l'information est plutôt "dispersée" et je ne suis pas sûr si j'ai raté quelque chose en cours de route.

En tout cas, j'ai du mal à tout faire fonctionner - probablement parce que je ne suis pas encore très à l'aise avec ce genre de problèmes, car je n'ai été que sur une distribution linux tout en étant complètement inconnu avec clojure. S'il me manque quelque chose d'évident, je m'excuse, mais il va de soi que quelque chose ne peut être évident qu'une fois qu'il est démontré qu'il en est ainsi.

Toutes les suggestions seront grandement appréciées.

Répondre

1

Cela ressemble à un problème causé par le nouveau concept de «modules» de Java 9: ​​Clojure s'attend à pouvoir accéder à java.sql.Timestamp, mais il ne le peut pas. Je n'ai pas suivi le développement de Java ou le développement de Clojure, donc je ne peux pas dire avec certitude que c'est votre problème, mais ça me semble être le cas. Essayez avec un JDK plus tôt.

+0

C'était en effet le problème. Après l'exécution de l'installateur d'Oracle-java8, tout s'est bien passé. Merci pour la réponse rapide. J'espérais que c'était juste quelque chose que je faisais mal avec la version 9 mais hélas. – ianarchist

+0

Voir ici la liste des problèmes liés à Java 9: ​​https://github.com/tobias/clojure-java-9/issues. Et voici le numéro spécifique de leinigen: https://github.com/technomancy/leiningen/issues/2149 –