Pergunta

Eu tenho tentado para compilar uma test.clj muito simples em Clojure sem qualquer sucesso. Eu tenho um rosca na Clojure Google Grupo com várias respostas, mas nada ajudou. Para resumir rapidamente, aqui está o meu arquivo clojure:

(ns test.test
    (:gen-class))

(defn -main
    [gre]
    (println (str "Hello " gre)))

Basicamente é o arquivo de exemplo fornecido no Clojure documentação .

Eu coloquei este arquivo appropiately em clojure/src/test/test.clj, e deve ser capaz de compilar com (compile 'test.test), mas eu continuo recebendo o erro:

java.io.IOException: The system cannot find the path specified (test.clj:1)
o que me leva a acreditar que é um problema de classpath. Eu tentei correr Clojure com todos os comandos padrão dados no Clojure documenation , bem como o mais recente sugestão do fio java -classpath .;src;classes;clojure.jar clojure.main.

Se ajudar, meu sistema de arquivos esta aparência:

-+-clojure
 +-classes/
 +-+-src/
 | |-+-test/
 | | \-test.clj
 +-\-test.clj
 +-test.clj
 +-clojure.jar

P.S. Estou executando no Vista Ultimate por isso pode possivelmente ser um problema de permissões, mas eu verifiquei as permissões e não consegui encontrar nada de errado com eles.

Foi útil?

Solução

saída do console para compilar test.clj no Windows:

C:\clojure>dir /b/s
C:\clojure\classes
C:\clojure\src
C:\clojure\src\test
C:\clojure\src\test\test.clj

C:\clojure>java -cp c:\dev\clojure.jar;.\src;.\classes clojure.lang.ReplClojure
user=> (compile 'test.test)
test.test
user=>

Os arquivos de classe gerados estão no diretório classes.

Além disso, nota que você está faltando um parêntese direito em sua main . versão corrigida:

(ns test.test
    (:gen-class))

(defn -main
    [gre]
    (println (str "Hello " gre)))

Outras dicas

 C:\clojrue\java -cp .\src;.\classes;clojure.jar 
    -Dclojure.compile.path=classes clojure.lang.Compile test.test
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top