web-dev-qa-db-fra.com

java.io.FileNotFoundException: impossible de localiser clojure/spec/alpha__init.class ou clojure/spec/alpha.clj sur le chemin d'accès aux classes

J'essayais de comprendre les spécifications de Clojure. Lors de la mise en place d'un projet clojure, l'erreur suivante est générée alors que j'ai besoin de clojure.spec.alpha:

Exception in thread "main" Java.io.FileNotFoundException: Could not locate clojure/spec/alpha__init.class or clojure/spec/alpha.clj on classpath., compiling:
at clojure.lang.Compiler.load(Compiler.Java:7391)
at clojure.lang.Compiler.loadFile(Compiler.Java:7317)
at clojure.main$load_script.invokeStatic(main.clj:275)
at clojure.main$script_opt.invokeStatic(main.clj:335)
at clojure.main$script_opt.invoke(main.clj:330)
at clojure.main$main.invokeStatic(main.clj:421)
at clojure.main$main.doInvoke(main.clj:384)
at clojure.lang.RestFn.invoke(RestFn.Java:408)
at clojure.lang.Var.invoke(Var.Java:379)
at clojure.lang.AFn.applyToHelper(AFn.Java:154)
at clojure.lang.Var.applyTo(Var.Java:700)
at clojure.main.main(main.Java:37)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:498)
at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.Java:131)

Mon projet.clj:

(defproject testing "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.Eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.9.0"]
                 [org.clojure/spec.alpha "0.1.143"]
                 [org.clojure/core.specs.alpha "0.1.10"]])

et core.clj:

(ns testing.core
  (:require [clojure.spec.alpha :as s]))

(defn foo
  "I don't do a whole lot."
  [x]
  (println x "Hello, World!"))

Je serai reconnaissant si quelqu'un peut m'aider. 

6
user7697691

J'ai fait un lein clean et ça a commencé à fonctionner

1

J'ai eu la même erreur, je ne sais pas clojure mais j'ai du corriger quelques exceptions NoClassDefFoundError pour tester Kafka Storm en utilisant org.Apache.storm.kafka.KafkaSpout

La première exception était: NoClassDefFoundError: clojure/lang/IFn

J'ai corrigé cela en incluant clojure-1.9.0.jar dans le classpath.

Ensuite, cette exception: 

FileNotFoundException: Could not locate clojure/spec/alpha__init.class or clojure/spec/alpha.clj on classpath

réalisé plus tard, ils ont un autre jar spec.alpha-0.1.143.jar pour cela.

J'espère que ceci aide quelqu'un d'autre!

1
xgMz

Pour ceux qui rencontrent ce problème sur la version 1.9, voir https://groups.google.com/forum/#!msg/clojure/-ovhQXtzhgw/XBm_rfcICgAJ

Avec 1.8, vous pouvez simplement exécuter Java -jar clojure-1.8.0.jar que vous avez dans votre fichier .m2 et RELP démarrera instantanément. Avec 1.9, ce n'est plus le cas. Vous avez besoin de bibliothèques supplémentaires que vous pourriez ne pas avoir par défaut dans votre .m2.

Vous les aurez cependant si vous installez Clojure sur la base de guide officiel

0
yuranos87