4
我剛開始使用clojure和蹺蹺板製作GUI應用程序。它只是創建一個JFrame和一些組件。這是代碼。主函數除了調用start-gui
之外什麼也不做,只要返回就退出。Clojure搖擺應用程序啓動時間
(ns pause.gui
(:use seesaw.core))
(native!)
; (javax.swing.UIManager/setLookAndFeel
; "org.pushingpixels.substance.api.skin.SubstanceGraphiteLookAndFeel")
(def main-window
(frame :title "Pause"
:on-close :exit))
(def sidebar (listbox :model []))
(def main-area (text :multi-line? true
:font "MONOSPACED-PLAIN-14"
:text "test"))
(def main-split
(left-right-split (scrollable sidebar)
(scrollable main-area)
:divider-location 1/5))
(defn setup-main-window
"Fills the main window with its content"
[main-window]
(config! main-window
:content main-split)
main-window)
(defn start-gui
"Create the main window"
[]
(-> main-window
setup-main-window
pack!
show!))
我編譯這個使用lein uberjar
與time java -jar
定時它。它報告了14.5秒。有什麼我做錯了嗎?我可以用3秒的時間啓動,但這是完全不可接受的。
它不編譯所有的clojure代碼到字節碼的編譯步驟(即當jar被製作時)?有沒有辦法強制它?會在'ns'子句的幫助中加入':gen-class'? – adrusi
這可能會有所幫助。但是還有很多其他代碼(例如庫)沒有使用gen-class進行預編譯。因人而異。 – mikera