线程中的JavaFX异常;WindowsNativeUnlopThread“;java.lang.NoSuchMethodError:<;初始化>;
我刚刚在这里写了这段代码:线程中的JavaFX异常;WindowsNativeUnlopThread“;java.lang.NoSuchMethodError:<;初始化>;,java,windows,javafx,javafx-8,Java,Windows,Javafx,Javafx 8,我刚刚在这里写了这段代码: package SpellcheckerClient; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; public class Main extends Application {
package SpellcheckerClient;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
BorderPane root = FXMLLoader.load(getClass().getResource("/controller/gui.fxml"));
Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.setTitle("Spellchecker Client");
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
这是相应的控制器
package controller;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import spellchecker.remote.SpellcheckerRemoteAdapter;
public class Controller {
@FXML
TextField input;
@FXML
Button send;
@FXML
TextArea area;
@FXML
Button connect;
private SpellcheckerRemoteAdapter adapter;
@FXML
private void send() throws RemoteException{
String toCheck = input.getText();
this.area.appendText(toCheck + "\n");
this.area.appendText(checkRoutine(toCheck, this.adapter) + "\n\n");
this.input.clear();
}
public void initiateConnection() {
try {
Registry registry = LocateRegistry.getRegistry(1088);
this.adapter = (SpellcheckerRemoteAdapter) registry.lookup(SpellcheckerRemoteAdapter.NAME);
this.area.appendText("Verbindung erfolgreich aufgebaut!\n");
connect.setDisable(true);
} catch (Exception e) {
if(this.adapter == null) {
this.area.appendText("Server nicht gefunden!\n");
}
}
}
private static String checkRoutine(String input, SpellcheckerRemoteAdapter adapter) throws RemoteException {
if (input == null || input.isEmpty()) {
return "Bitte etwas eingeben!";
}
String[] words = input.split(" ");
boolean control = true;
String output = "";
for(String word : words) {
if(!adapter.check(word)) {
control = false;
output += word + ":\t" + adapter.getProposal(word) + "\n";
}
}
if(control) {
return "Alles Okay!\n";
}
return output;
}
}
如果我在自己编写的笔记本电脑上运行这段代码,它在Eclipse和runnable Jar中运行得非常好。但是,如果我尝试在另一台计算机上运行JAR,我会收到以下错误消息:
Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError: <init>
at javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
at javafx.graphics/com.sun.glass.ui.Screen.initScreens(Unknown Source)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(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)
at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "WindowsNativeRunloopThread" java.lang.NoSuchMethodError: <init>
at javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen_getScreens(Native Method)
at javafx.graphics/com.sun.glass.ui.Screen.initScreens(Unknown Source)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(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)
at java.base/java.lang.Thread.run(Unknown Source)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
at javafx.graphics/com.sun.prism.d3d.D3DPipeline.getAdapterOrdinal(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.assignScreensAdapters(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(Unknown Source)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$startup$10(Unknown Source)
at javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(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)
at java.base/java.lang.Thread.run(Unknown Source)
线程“WindowsNativeUnlopThread”java.lang.NoSuchMethodError中出现异常:
在javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen\u getScreens(本机方法)
在javafx.graphics/com.sun.glass.ui.Screen.initScreens(未知来源)
在javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(未知来源)
在javafx.graphics/com.sun.glass.ui.win.WinApplication.\u runLoop(本机方法)
位于javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(未知来源)
位于java.base/java.lang.Thread.run(未知源)
线程“WindowsNativeUnlopThread”java.lang.NoSuchMethodError中出现异常:
在javafx.graphics/com.sun.glass.ui.win.WinApplication.staticScreen\u getScreens(本机方法)
在javafx.graphics/com.sun.glass.ui.Screen.initScreens(未知来源)
在javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(未知来源)
在javafx.graphics/com.sun.glass.ui.win.WinApplication.\u runLoop(本机方法)
位于javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(未知来源)
位于java.base/java.lang.Thread.run(未知源)
线程“JavaFX应用程序线程”java.lang.NullPointerException中的异常
位于javafx.graphics/com.sun.prism.d3d.D3DPipeline.getAdapterOrdinal(未知源)
位于javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.assignScreensAdapters(未知来源)
位于javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runToolkit(未知来源)
在javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.lambda$startup$10(未知来源)
在javafx.graphics/com.sun.glass.ui.Application.lambda$run$1(未知来源)
在javafx.graphics/com.sun.glass.ui.win.WinApplication.\u runLoop(本机方法)
位于javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(未知来源)
位于java.base/java.lang.Thread.run(未知源)
我的笔记本电脑和电脑上安装了相同版本的JDK/JRE。
我真的不明白错误消息告诉我什么。您安装了哪个JDk??我也有同样的问题,我使用JDK 8而不是JDK 9。这对我很有帮助 这是因为我创建的jar是通过不同的系统在JDK 8上创建的。 当它在另一个有JDK9的系统上执行时。所以它是版本不兼容的 在保留单个JDK 8并将其映射到系统环境之后,当我尝试运行jar时,它对我起了作用
祝你好运:)你好,我在Eclipse环境(Windows 10操作系统)上遇到了同样的问题, 添加VM选项-Djava.library.path=“C:\WINDOWS\Sun\Java\bin”解决了我的问题 这意味着javafx graphics-[version]-win.jar调用一些本机dll。你必须找到那些dll是存储的。 多亏了jvisualvm,我找到了路径,并在应用程序正确运行的情况下显示了VM选项
希望它能解决您的问题。这与JDK没有任何关系。这是哪个版本的JDK?是10点吗?看起来像是一个中断的安装,缺少本机库。