2012-12-26 39 views
2

我一直無法得到nREPL與SWT在Mac OS X上運行使用SWT兼容Mac OS X「雷音REPL」

要重現該問題,創建一個新的SWT項目具有以下project.clj文件:

(defproject swttest "0.1.0" 
    :description "Foo" 
    :dependencies [[org.clojure/clojure "1.4.0"] 
       [org.eclipse.swt/org.eclipse.swt.cocoa.macosx.x86_64 "3.8"]] 
    :jvm-opts ["-XstartOnFirstThread"] 
    :repositories [["swt-repo" "https://swt-repo.googlecode.com/svn/repo/"]]) 

然後使用「lein repl」啓動REPL。最後,運行以下命令:發生

user> (org.eclipse.swt.widgets.Display.) 

以下錯誤:

SWTException Invalid thread access org.eclipse.swt.SWT.error (:-1) 

我怎樣才能得到這個工作?

回答

2

找到解決方案。除了使用nREPL的,在一個 「啞」 REPL運行它,通過修改project.clj文件,包括 「dumbrepl」 的別名,就像這樣:

(defproject swttest "0.1.0" 
    :description "Foo" 
    :dependencies [[org.clojure/clojure "1.4.0"] 
       [org.eclipse.swt/org.eclipse.swt.cocoa.macosx.x86_64 "3.8"]] 
    :jvm-opts ["-XstartOnFirstThread"] 
    :aliases {"dumbrepl" ["trampoline" "run" "-m" "clojure.main/main"]} 
    :repositories [["swt-repo" "https://swt-repo.googlecode.com/svn/repo/"]]) 

然後運行:

> lein dumbrepl 
1

的lein命令行啓動幾個jvms。只有第一個參數與 - XstartOnFirstThread參數一起運行。您可以通過運行ps -aux|grep java並查看lein repl的功能來驗證。這就是爲什麼你的「啞巴」的原因。

+0

感謝您的信息。這基本上是我想到的。 –