2014-09-01 16 views
5

Sto provando un tutorial JavaFX dal sito Oracle [tutorial fxml] (http://docs.oracle.com/javase/8/javafx/get-started-tutorial/fxml_tutorial.htm).Impossibile costruire l'istanza javafx.application.Application

package fxml; 

import javafx.application.Application; 
import javafx.fxml.FXMLLoader; 
import javafx.scene.Parent; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 

class Main extends Application { 

    public Main() {} 

    @Override 
    public void start(Stage stage) throws Exception { 
     Parent root = FXMLLoader.load(getClass().getResource("welcome.fxml")); 

     Scene scene = new Scene(root); 

     stage.setTitle("FXML UI"); 
     stage.setScene(scene); 
     stage.show(); 
    } 

    public static void main(String args[]) { 
     launch(args); 
    } 

} 

E questa è l'eccezione che ottengo continuamente. L'applicazione non viene visualizzata sullo schermo. Ho fatto il costruttore di main() non-args da un'altra risposta di overflow dello stack ma non lo ha risolto.

Exception in Application constructor 
Exception in thread "main" java.lang.RuntimeException: Unable to construct Application instance: class fxml.Main 
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:884) 
    at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:56) 
    at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:158) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.IllegalAccessException: Class com.sun.javafx.application.LauncherImpl$7 can not access a member of class fxml.Main with modifiers "public" 
    at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:101) 
    at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:295) 
    at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:287) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:398) 
    at com.sun.javafx.application.LauncherImpl$7.run(LauncherImpl.java:791) 
    at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335) 
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301) 
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298) 
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) 
+0

È necessario aggiungere il modificatore 'public' alla classe esterna. –

risposta

8

class Main extends Application manca la parola chiave public iniziale.

Anche public Main() {} non è necessario.

+0

Questo mi ha aiutato molto a ringraziarvi –

Problemi correlati