Zdarzyć się może, że pomimo iż obrazek znajduje się w tym samym katalogu co aplikacja to nie ładuje się. Związane jest to z brakiem dynamicznego typowania w JavieFX. Jest to język skryptowy, ale nie ze wszystkim potrafi sobie on poradzić. Problem sprawia mu szczególnie rzutowanie String na URL. Generalnie nie działa to w sposób intuicyjny. Na przykład jeżeli napiszemy source: "obrazek.jpg" to zdrowy rozsądek podpowiada, że powinniśmy otrzymać obrazek znajdujący się w bieżącym katalogu. Niestety nie ma tak dobrze. Najprostszym rozwiązaniem (poza użyciem {__DIR__} ) jest taki oto „hak”:

Listing 1. Budujemy URL ze stringa

import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.image.Image;

import java.io.File;

def currentDir = "{(new File("")).getAbsolutePath()}";

Stage {
    title: "Application title";
    width: 350
    height: 350
    scene: Scene {
        content: ImageView {
                        image: Image {
                                url: "file:{x}/test.jpg"
                        }
                }
    }
}

eleganckie o ile zmienne globalne takie mogą być. Niestety JavaFX ma kilka takich niedoróbek.