InvocationTargetException при запуске программы javafx 11 - PullRequest
0 голосов
/ 03 января 2019

Я получил свой код для запуска, когда скопировал и вставил свой код в другую программу javafx, которую я создал несколько недель назад, но по какой-то причине, когда я создаю новые программы javafx, я не могу заставить их работать и получать эти ошибки:

Exception in Application start method
java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1051)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.IllegalAccessError: superclass access check failed: class com.sun.javafx.scene.control.ControlHelper (in unnamed module @0xb69df6e) cannot access class com.sun.javafx.scene.layout.RegionHelper (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.scene.layout to unnamed module @0xb69df6e
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:802)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:700)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:623)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    at javafx.scene.control.Control.<clinit>(Control.java:86)
    at Homework4.Homework4.start(Homework4.java:24)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
    at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
    ... 1 more
Exception running application Homework4.Homework4

Я думаю, что что-то не так с моим JDK11 / JavaFX11, что не позволяет мне создавать больше проектов JavaFX, потому что что-то заставляет каждый новый проект иметь эту ошибку компиляции. Я думаю, что ошибка связана с java.lang.IllegalAccessError, но я понятия не имею, как ее исправить.

Вот мой код для справки:

package Homework4;

import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;


public class Homework4 extends Application {

    private TextField firstNum;
    private TextField secondNum;
    private Button plus;
    private Button equals;
    private TextField result;

    @Override
    public void start(Stage stage) {
        firstNum = new TextField();
        firstNum.setMaxWidth(100);
        firstNum.setOnAction(event -> handleEquals(event));

        secondNum = new TextField();
        secondNum.setMaxWidth(100);
        secondNum.setOnAction(event -> handleEquals(event));

        plus = new Button("+");
        plus.setOnAction(event -> handleEquals(event));

        equals = new Button("=");
        equals.setOnAction(event -> handleEquals(event));

        result = new TextField();
        result.setEditable(false);

        HBox innerPane = new HBox();
        innerPane.setSpacing(10);
        innerPane.setPadding(new Insets(10, 10, 10, 10));
        innerPane.getChildren().addAll(firstNum, plus, secondNum, equals);

        VBox pane = new VBox();
        pane.setPadding(new Insets(10, 10, 10, 10));
        pane.getChildren().addAll(innerPane, result);

        stage.setScene(new Scene(pane));
        stage.setTitle("Welcome to Calculator 3000!");
        stage.show();

    }

    private void handleEquals(ActionEvent event){
        if(!(firstNum.getText().equals("") || secondNum.getText().equals(""))){
            result.setText(firstNum.getText() + secondNum.getText());
        }
    }

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

}

В настоящее время я использую для обновления самую последнюю версию IntelliJ Idea.

Примечание: в настоящее время я учусь на первом курсе в колледже, который только начинает создавать проекты javafx, поэтому любая помощь / предложения приветствуются!

Я попытался обратиться к этой теме за помощью: InvocationTargetException при запуске программы javafx

К сожалению, я не обладаю знаниями в области кодирования, чтобы понять предложения, которые люди разместили в этой теме.

1 Ответ

0 голосов
/ 01 августа 2019

Оказывается, я неправильно настроил IntelliJ, что привело к моему InvocationTargetException.Предполагая, что все ваши переменные среды верны, следуйте этим инструкциям , чтобы возможно исправить исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...