2013-10-15 2 views
1

Как и мой earlier question.Eclipse зависает при попытке отладить проект clojure

Eclipse зависает при попытке отладить проект Clojure. Раньше я использовал Eclipse Kepler в Windows 8, теперь то же самое происходит с использованием Eclipse Juno в Windows XP. Журнал ошибок Eclipse, содержит следующие соответствующие записи (раннее сверху):

07:30 (Info) Started ccw nREPL server: nrepl://127.0.0.1:1581 
07:30 (Info) Starting REPL with program args: -i "/C:/Documents and Settings/bjarvis/My Documents/Java/eclipse/configuration/org.eclipse.osgi/bundles/804/1/.cp/ccw/debug/serverrepl.clj" -e "(require 'clojure.tools.nrepl.server)(do (clojure.tools.nrepl.server/start-server :ack-port 1581) nil)" 
07:30 (Info) Adding to project's classpath to support nREPL: [C:\Documents and Settings\bjarvis\My Documents\Java\eclipse\plugins\ccw.core_0.20.0.STABLE001\tools.nrepl-0.2.1.jar] 
07:31 (Error) Waiting for new REPL process ack timed out 
07:31 (Error) Waiting for new REPL process ack timed out 

Одна странная вещь, которую я заметил, что после первой авиакатастрофы «Leiningen» и записи «Clojure» в проекте правой кнопкой мыши меню были ушел, поэтому я предполагаю, что CCW «разбился» или ушел или ??? Выход из Eclipse и его запуск снова восстановили эти записи меню.

Я понимаю, что здесь мало информации, но есть ли у кого-нибудь идеи? Обратите внимание, что отладчик работал нормально в течение нескольких дней - тогда утром начались проблемы. Также обратите внимание, что я могу успешно запустить этот файл, «отправив» его в REPL, используя Ctrl-Alt-S.

FWIW, файл я пытаюсь отлаживать это:

(ns myproject.core 
    (:require [clojure.java.jdbc :as jdbc])) 

(defn foo [str] 
    (println str "Hello, World!") 
) 

(defn hello [who] 
    (str "Hello " who "!")) 

(defn db-test [] 
    (let [db-path "c:/derby/testdb1"] 
     (def db {:classname "org.apache.derby.jdbc.EmbeddedDriver" 
       :subprotocol "derby" 
       :subname db-path 
       :create true}) 

     (println db) 

     ; Create a table named TESTTABLE here and insert some data 

     (jdbc/db-do-commands db false 
     "CREATE TABLE TESTTABLE 
      (ID_TT BIGINT 
       NOT NULL 
       GENERATED ALWAYS AS IDENTITY 
       CONSTRAINT PK_TESTTABLE 
       PRIMARY KEY, 
      NAME  VARCHAR(10), 
      ADDRESS VARCHAR(20))" 
     "INSERT INTO TESTTABLE (NAME, ADDRESS) 
      VALUES ('Bob', 'Home'), 
        ('Jack', 'Top Of The Hill'), 
        ('Elmo', 'Dumpster')" 
    ) 

     ; Query the database to see what you find 

     (jdbc/with-connection db 
     (jdbc/with-query-results rs ["SELECT * FROM TESTTABLE"] 
      ; rs will be a sequence of maps, 
      ; one for each record in the result set. 
      (dorun (map #(println (:title %)) rs)))) 
    ) 
) 
+0

Я знаю, что ответить на другой вопрос сейчас, но: 1) вы должны использовать Emacs для написания кода Clojure. 2) вам действительно не нужен «отладчик», у вас есть REPL (и emacs для отправки кода на этот реплик). 3) вы действительно не хотите писать этот ужасный SQL - http://www.sqlkorma.com/, например. – iced

+0

@iced - Корма выглядит интересно. На моем рабочем месте весь код, включая SQL, должен быть представлен на рассмотрение, прежде чем он будет разрешен для установки в производство. Есть ли способ извлечь SQL-код, созданный Korma, чтобы его можно было просмотреть до его установки? Это должен быть весь SQL, включая DDL и DML. Благодарю. –

ответ

0

Если вы готовы попробовать другой IDE, мой опыт показывает, что отладка Clojure работает очень хорошо в IntelliJ, возможно, это поможет вам. Существует бесплатная версия EAP, которую вы можете использовать вместе с плагином La Clojure (лучше всего работает с IntelliJ версии 13). http://confluence.jetbrains.com/display/IDEADEV/IDEA+13+EAP

Следующий блог объясняет, как отлаживать с помощью IntelliJ: http://blog.tomeklipski.com/2013/04/running-and-debugging-clojure-code-with.html

+0

Спасибо! Я посмотрю на это. –

Смежные вопросы