当前位置: 首页 > 知识库问答 >
问题:

客户端/服务器罐-线程"main"java.lang.reflect.InvocationTargetExctive中的异常

张建华
2023-03-14

我在eclipse中有一个javafx项目准备运行。我有一个客户端和一个服务器。我试图在eclipse中运行服务器和客户端,一切都很好,但是当我导出到可运行的jars时,一个到服务器,一个到客户端,服务器jar工作正常,但是客户端抛出异常:线程“main”中的异常java.lang.reflect.InvocationTargetExctive

虽然它在eclipse中导出之前工作正常。服务器和客户端都是以图形用户界面开始的javafx应用程序。

ClientLauncher。爪哇:

package client;

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.stage.Stage;

public class ClientLauncher extends Application {

    public GCMClient gcmClient;

    private String host = "localhost";
    private int port = 5555;

    private double xOffset = 0;
    private double yOffset = 0;

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

    }

    @Override
    public void start(Stage PrimaryStage) throws Exception {

        System.out.println("Client Connection Established");
        Parent root = FXMLLoader.load(getClass().getResource("/sources/ServerLogin.fxml"));
        root.setOnMousePressed(new EventHandler<MouseEvent>() {

            public void handle(MouseEvent event) {
                xOffset = event.getSceneX();
                yOffset = event.getSceneY();
            }
        });
        root.setOnMouseDragged(new EventHandler<MouseEvent>() {
            @Override
            public void handle(MouseEvent event) {
                PrimaryStage.setX(event.getScreenX() - xOffset);
                PrimaryStage.setY(event.getScreenY() - yOffset);
            }
        });

        Scene scene = new Scene(root);
        PrimaryStage.setScene(scene);
        PrimaryStage.show();
    }

}

我得到的例外是:

Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException: Location is required.
        at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
        at javafx.fxml/javafx.fxml.FXMLLoader.load(Unknown Source)
        at client.ClientLauncher.start(ClientLauncher.java:33)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
        at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
        at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)

共有1个答案

姜晨
2023-03-14

解决了的:

我拼错了ServerLogin。fxml输入

 Parent root = FXMLLoader.load(getClass().getResource("/sources/ServerLogin.fxml"));

在我的例子中,它被命名为“ServerLogIn.fxml”。

在runnable jar中,fxml的名称似乎是区分大小写的,但在eclipse中不是。这就是为什么它在eclipse中运行良好,而在jar中不起作用。

 类似资料:
  • 问题内容: 我正在尝试使用我一直在努力的客户端/服务器程序实现多线程。我需要允许多个客户端同时连接到服务器。我目前有4类:客户端,服务器,协议和用于处理线程的工作器。以下代码是我对这些类的拥有的代码: SocketServer类: SocketClient类别: 协议类别: ClientWorker类: 当我运行服务器和客户端时,一切正常。然后,当我尝试运行另一个客户端时,它只是挂在那儿,没有提示

  • 我试图在日食中运行下面的示例一段时间。 https://github.com/jboss-developer/jboss-eap-quickstarts/tree/master/ejb-remote 我已经创建了一个ejb项目,并导入了所有的类文件并将其放入。属性文件。现在代码中没有错误,EJB已成功部署到JBoss服务器上。当我尝试运行RemoteEJBClient时。java,我遇到了以下异常

  • 我正在用Netty玩Spring Webflux(2.0.3.Release),并试图理解服务器和web客户端是如何使用线程的。我用WebClient编写了一些带有http调用链的代码。我怀疑所有调用都是非阻塞的,但我不明白为什么只有一个请求经过整个链路。下面是代码和日志输出: 我对localhost:8080/1进行了4次调用,并得到以下输出。只有一个请求到达了第三个方法。我希望当一个线程被阻塞

  • 我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se

  • 有可能从客户端向服务器抛出异常吗?我们有一个从服务器到客户端的开放流: 当我尝试这样的事情时: 我在客户端的StreamObserver.on错误中获得了异常,但在服务器端没有异常。