2017-01-03 2 views
1

zurück Ich brauche eine fxml-basierte JavaFX-Szene in Clojure, , aber wenn ich versuche, die Ressource "view.fxml" zu laden, gibt es nil zurück.clojure.java.io/resource gibt nil

Hier ist mein gegenwärtiges Code:

(ns ui.ui_controller 
(:import (javafx.application Application) 
     (javafx.fxml FXMLLoader) 
     (javafx.scene Scene) 
     (javafx.stage Stage))) 

(gen-class 
:name ui.ui_controller 
:extends javafx.application.Application) 

(defn -main [& args] 
(Application/launch ui.ui_controller args)) 

(defn -start [this stage] 

(let [loc (clojure.java.io/resource "view.fxml") 
    root (FXMLLoader/load loc)] 

(.setScene stage (Scene. root)) 
(.setTitle stage "JavaFXML with Clojure Example") 
(.show stage))) 

Und in dem Ressourcen-Ordner ist die view.fxml-Datei, die geladen werden soll.

Wenn in Call (println (clojure.java.io/resource "view.fxml")) nil ...

Jede Idee, was hier schief geht?

Danke!

+0

Ich vermute, es ist etwas falsch in Ihrer Umgebung ist. Versuchen Sie, ein neues Projekt zum Testen mit einer einzeiligen Textdatei in 'Ressourcen' zu erstellen. Sie sollten es mit 'slurp 'lesen können. –

+0

Danke! Ich habe ein neues Projekt gemacht und es funktioniert. Ich werde ein neues Projekt für meine Bewerbung machen. – GameYoker

+0

Ich habe hinzugefügt: Resource-Pfade [["lib/jfxrt.jar"] zu meinem Projekt.clj, ich weiß nicht warum ... nach dem Löschen funktioniert es. – GameYoker

Antwort

1

Hier ist ein Beispiel

(ns tst.clj.core 
    (:use clj.core 
     clojure.test) 
    (:require 
    [clojure.java.io :as io] 
)) 

(def words (slurp (io/file (io/resource "count.txt")))) 
(println words) 


> ls -ldF resources/count.txt 
-rw-rw-r-- 1 alan alan 14 Jan 3 09:01 resources/count.txt 

> cat resources/count.txt 
one 
two 
three 

> lein test 

one 
two 
three 
Verwandte Themen