应用程序启动方法java.lang.reflect中出现异常,sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)处出现调用目标异常

k75qkfdt  于 2023-03-16  发布在  Java
关注(0)|答案(1)|浏览(148)

I am having trouble finding what to fix in my fxml/java code, this is the whole error:
java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) Caused by: java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$154(LauncherImpl.java:182) at java.lang.Thread.run(Thread.java:748) Caused by: javafx.fxml.LoadException: No controller specified. /Volumes/OSTIUM/Labs/CAPSTONE/IceCreamScene.fxml:23 at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2597) at javafx.fxml.FXMLLoader.access$100(FXMLLoader.java:103) at javafx.fxml.FXMLLoader$Element.getControllerMethodHandle(FXMLLoader.java:557) at javafx.fxml.FXMLLoader$Element.processEventHandlerAttributes(FXMLLoader.java:599) at javafx.fxml.FXMLLoader$ValueElement.processEndElement(FXMLLoader.java:770) at javafx.fxml.FXMLLoader.processEndElement(FXMLLoader.java:2823) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2532) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124) at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104) at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097) at IceCreamRUN.start(IceCreamRUN.java:11) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161(LauncherImpl.java:863) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(PlatformImpl.java:326) at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
I have been looking throught the 'RUN' and 'Control' code to try anf find the mistake and im not finding anything.These are the code for the 'RUN' program and the 'Control'

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

public class IceCreamRUN extends Application
 {
  public void start (Stage stage ) throws Exception
   {
  Parent parent = 
  FXMLLoader.load(getClass().getResource("IceCreamScene.fxml"));
  Scene scene = new Scene(parent);
  stage.setTitle("Patino's Ice Cream Shop");
  stage.setScene(scene);
  stage.show();

   }
  public static void main(String [] args)
   {
  launch(args);
   }
}
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.RadioButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType;
import java.io.*;
import java.util.Scanner;

 public class IceCreamControl {

//declarations

@FXML
private RadioButton Vanilla;

@FXML
private ToggleGroup FlavorGroup;

@FXML
private RadioButton Choc;

@FXML
private RadioButton StrwBerry;

@FXML
private Button Save;

@FXML
private Button ReDo;

@FXML
private Button Calculate;

@FXML
private CheckBox Nuts;

@FXML
private CheckBox Cherries;

double creamcost = 0.0;
double extra = 0.0;

//processing

@FXML
void CalculateListener() 
{
      double sub, tax, total;
      double taxRate = 0.06;

      sub = VanillaListener() + ChocolateListener() + 
                StrawberryListener() 
                   + ExtraListener();
      tax = sub * taxRate;
      total = sub + tax;

      Alert alert = new Alert (AlertType.INFORMATION);
      alert.setHeaderText(String.format("Total: $ %.2f", total));
      alert.setContentText(String.format("Order: $ %.2f\nTax: %.2f\n 
      Total: $ %.2f", sub, tax, total));
      alert.setTitle("Your Order");
      alert.showAndWait();
  }

@FXML
double ExtraListener() 
{
      extra = 0.0;
      if(Cherries.isSelected())
         extra += 0.50;
      if(Nuts.isSelected())
         extra += 0.50;

      return extra;
}

@FXML
void ReDoListener() throws IOException 
{
   String order;
   creamcost = 0.0;
   extra = 0.0;
   Nuts.setSelected(false);
   Cherries.setSelected(false);
   Vanilla.setSelected(false);
   Choc.setSelected(false);
   StrwBerry.setSelected(false);

   File file = new File ("IcecreamSave.txt");
   Scanner inputFile = new Scanner (file);

   while(inputFile.hasNext())
      {
         order = inputFile.nextLine();
         if (order.charAt(0) == 'v')
            {
               Vanilla.setSelected(true);
               creamcost = 2.25;
            }
         if (order.charAt(0) == 'c')
            {
               Choc.setSelected(true);
               creamcost = 2.25;
            }
         if (order.charAt(0) == 's')
            {
               StrwBerry.setSelected(true);
               creamcost = 2.25;
            }
      }
   inputFile.close();
}

@FXML
void SaveListener() throws IOException 
{
PrintWriter outputfile = new PrintWriter ("IcecreamSave.txt");

if(Vanilla.isSelected())
  outputfile.println("vanilla"); 
if(Choc.isSelected())
  outputfile.println("chocolate");
if(StrwBerry.isSelected())
  outputfile.println("strawberry");
if (Nuts.isSelected())
  outputfile.println("nuts");
if(Cherries.isSelected())
  outputfile.println("cherry");

outputfile.close();
}

@FXML
double StrawberryListener() 
{
if (StrwBerry.isSelected())
    creamcost = 2.25;
   else creamcost = 0.0;
  return creamcost;
}

@FXML
double VanillaListener() 
{
if (Vanilla.isSelected())
    creamcost = 2.25;
   else creamcost = 0.0;
  return creamcost;
}

@FXML
double ChocolateListener() 
{
if (Choc.isSelected())
    creamcost = 2.25;
   else creamcost = 0.0;
  return creamcost;
   }

}

I would appreciate help finding the mistake immensely.
Update: I fixed the location but got a new error;

> Aug 15, 2018 1:28:21 PM javafx.fxml.FXMLLoader$ValueElement 
 processValue
 WARNING: Loading FXML document with JavaFX API of version 10.0.1 by 
 JavaFX runtime of version 8.0.171
 Exception in Application start method
 java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at

sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp l.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherI mpl.java:389) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) Caused by: java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$154(LauncherImpl.java:182) at java.lang.Thread.run(Thread.java:748) Caused by: javafx.fxml.LoadException: No controller specified. /Volumes/OSTIUM/Labs/CAPSTONE/IceCreamScene.fxml:22

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2597)
at javafx.fxml.FXMLLoader.access$100(FXMLLoader.java:103)
at javafx.fxml.FXMLLoader$Element.getControllerMethodHandle(FXMLLoader.java:557)
at javafx.fxml.FXMLLoader$Element.processEventHandlerAttributes(FXMLLoader.java:599)
at javafx.fxml.FXMLLoader$ValueElement.processEndElement(FXMLLoader.java:770)
at javafx.fxml.FXMLLoader.processEndElement(FXMLLoader.java:2823)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2532)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at IceCreamRUN.start(IceCreamRUN.java:11)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)

Exception running application IceCreamRUN

pcww981p

pcww981p1#

原因是根本原因异常。它找不到IceCreamScene.fxml。请检查文件是否存在于正确的位置。
您的应用正在此路径中查找它:/Volumes/OSTIUM/Labs/CAPSTONE/IceCreamScene.fxml

相关问题