IllegalArgumentException: изображение должно быть ненулевым - PullRequest
0 голосов
/ 17 мая 2019

Я работаю над простой игрой «Space Invaders» с использованием JavaFx, и, хотя моя игра работает без каких-либо исключений или ошибок, когда я запускаю проект внутри netbeans, она продолжает выдавать мне эту ошибку, когда я запускаю файл .jarчерез CMD, и я не могу найти решение.

// это пример того, как я определяю свои изображения / imagepattern

Image il=new Image("file:ship.png");
setFill(new ImagePattern(il));

// это ошибка

Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Image must be non-null
        at com.sun.prism.paint.ImagePattern.<init>(ImagePattern.java:44)
        at com.sun.javafx.tk.quantum.QuantumToolkit.createImagePatternPaint(QuantumToolkit.java:905)
        at com.sun.javafx.tk.Toolkit.getPaint(Toolkit.java:657)
        at javafx.scene.paint.ImagePattern.acc_getPlatformPaint(ImagePattern.java:291)
        at javafx.scene.paint.Paint$1.getPlatformPaint(Paint.java:51)
        at javafx.scene.shape.Shape.updatePGShape(Shape.java:916)
        at javafx.scene.shape.Shape.impl_updatePeer(Shape.java:965)
        at javafx.scene.shape.Rectangle.impl_updatePeer(Rectangle.java:541)
        at javafx.scene.Node.impl_syncPeer(Node.java:503)
        at javafx.scene.Scene$ScenePulseListener.syncAll(Scene.java:2304)
        at javafx.scene.Scene$ScenePulseListener.syncAll(Scene.java:2313)
        at javafx.scene.Scene$ScenePulseListener.synchronizeSceneNodes(Scene.java:2280)
        at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2419)
        at com.sun.javafx.tk.Toolkit.lambda$runPulse$29(Toolkit.java:398)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:397)
        at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:424)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:518)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:498)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulseFromQueue(QuantumToolkit.java:491)
        at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$408(QuantumToolkit.java:319)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$null$152(WinApplication.java:177)
        at java.lang.Thread.run(Unknown Source)

РЕДАКТИРОВАТЬ: после некоторой отладки я обнаружил, что .jar ищет изображения в C: \ Users \ Admin, а не в самом проекте, как я могу это изменить?

...