如何在加载我的.fxml时修复java.lang.reflect.InaccessibleObjectException

我正在将eclipse与Java 13.0.1和Maven结合使用。 如果我尝试加载UI,则会收到java.lang.reflect.InaccessibleObjectException,但我不知道如何解决。

我的模块信息是:

module ZUZE.ZUZE {
requires javafx.controls;
requires javafx.fxml;
requires javafx.graphics;
exports ZUZE.ZUZE;
exports Main;
exports Host;
}

这是我的.fxml:

<?xml version="1.0" encoding="UTF-8"?>

<?import java.lang.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.image.*?>
<?import javafx.scene.layout.*?>

<AnchorPane prefHeight="660.0" prefWidth="1200.0" xmlns="http://javafx.com/javafx/8"xmlns:fx="http://javafx.com/fxml/1" fx:controller="Host.HostGame">
 <children>
  <ImageView fitHeight="533.0" fitWidth="800.0" layoutX="8.0" layoutY="55.0">
     <image>
        <Image url="@ZUZEMap.jpg" />
     </image>
  </ImageView>
  <Label id="Name1" fx:id="Name1" layoutX="8.0" layoutY="1.0" text="Name: -" />
  <Label id="Karten1" fx:id="Karten1" layoutX="6.0" layoutY="22.0" text="Karten: -" />
  <Label id="Zuege1" fx:id="Zuege1" layoutX="91.0" layoutY="22.0" text="Züge: -" />
  <Label id="Bahnhoefe1" fx:id="Bahnhoefe1" layoutX="164.0" layoutY="22.0" text="Bahnhöfe: -" />
  <Label id="Auftraege1" fx:id="Auftraege1" layoutX="164.0" layoutY="1.0" text="Aufträge: -" />
  <Label id="Name2" fx:id="Name2" layoutX="279.0" layoutY="1.0" text="Name: -" />
  <Label id="Karten2" fx:id="Karten2" layoutX="277.0" layoutY="22.0" text="Karten: -" />
  <Label id="Zuege2" fx:id="Zuege2" layoutX="367.0" layoutY="22.0" text="Züge: -" />
  <Label id="Bahnhoefe2" fx:id="Bahnhoefe2" layoutX="441.0" layoutY="22.0" text="Bahnhöfe: -" />
  <Label id="Auftraege2" fx:id="Auftraege2" layoutX="443.0" layoutY="1.0" text="Aufträge: -" />
  <Label id="Name3" fx:id="Name3" layoutX="562.0" layoutY="1.0" text="Name: -" />
  <Label id="Karten3" fx:id="Karten3" layoutX="560.0" layoutY="22.0" text="Karten: -" />
  <Label id="Zuege3" fx:id="Zuege3" layoutX="640.0" layoutY="22.0" text="Züge: -" />
  <Label id="Bahnhoefe3" fx:id="Bahnhoefe3" layoutX="709.0" layoutY="22.0" text="Bahnhöfe: -" />
  <Label id="Auftraege3" fx:id="Auftraege3" layoutX="709.0" layoutY="1.0" text="Aufträge: -" />
  <Label id="Name4" fx:id="Name4" layoutX="822.0" layoutY="1.0" text="Name: -" />
  <Label id="Karten4" fx:id="Karten4" layoutX="822.0" layoutY="22.0" text="Karten: -" />
  <Label id="Zuege4" fx:id="Zuege4" layoutX="910.0" layoutY="22.0" text="Züge: -" />
  <Label id="Bahnhoefe4" fx:id="Bahnhoefe4" layoutX="985.0" layoutY="22.0" text="Bahnhöfe: -" />
  <Label id="Auftraege4" fx:id="Auftraege4" layoutX="985.0" layoutY="1.0" text="Aufträge: -" />
  <Label id="Name0" fx:id="Name0" layoutX="8.0" layoutY="588.0" text="Name: -" />
  <Label id="Zuege0" fx:id="Zuege0" layoutX="192.0" layoutY="588.0" text="Züge: -" />
  <Label id="Bahnhoefe0" fx:id="Bahnhoefe0" layoutX="297.0" layoutY="588.0" text="Bahnhöfe: -" />
  <Label id="Blau" fx:id="Blau" layoutX="6.0" layoutY="608.0" text="Blau: -" />
  <Label id="Gruen" fx:id="Gruen" layoutX="4.0" layoutY="631.0" text="Grün: -" />
  <Label id="Lila" fx:id="Lila" layoutX="98.0" layoutY="608.0" text="Lila: -" />
  <Label id="Orange" fx:id="Orange" layoutX="98.0" layoutY="631.0" text="Orange: -" />
  <Label id="Rot" fx:id="Rot" layoutX="185.0" layoutY="608.0" text="Rot: -" />
  <Label id="Weiss" fx:id="Weiss" layoutX="210.0" layoutY="631.0" text="Weiß: -" />
  <Label id="Schwarz" fx:id="Schwarz" layoutX="264.0" layoutY="608.0" text="Schwarz: -" />
  <Label id="Gelb" fx:id="Gelb" layoutX="292.0" layoutY="631.0" text="Gelb: -" />
  <Label id="Joker" fx:id="Joker" layoutX="379.0" layoutY="631.0" text="Joker: -" />
  <ChoiceBox id="Auftraege0" fx:id="Auftraege0" layoutX="453.0" layoutY="596.0" prefWidth="350.0" />
  <Button id="CloseButton" fx:id="CloseButton" layoutX="1112.0" layoutY="9.0" mnemonicParsing="false" onaction="#Close" text="Close" />
  <Label id="Reihe" fx:id="Reihe" layoutX="813.0" layoutY="55.0" text="Spieler am Zug: -" />
  <Label fx:id="LastOne" layoutX="817.0" layoutY="82.0" text="Letzter Spieler: -" />
  <Label fx:id="InfoLabel" layoutX="817.0" layoutY="109.0" text="Info: -" />
  <ImageView fx:id="card1" fitHeight="107.0" fitWidth="67.0" layoutX="813.0" layoutY="136.0">
     <image>
        <Image url="@Karte.jpg" />
     </image>
  </ImageView>
  <ImageView fx:id="card2" fitHeight="107.0" fitWidth="67.0" layoutX="886.0" layoutY="136.0">
     <image>
        <Image url="@Karte.jpg" />
     </image>
  </ImageView>
  <ImageView fx:id="card3" fitHeight="107.0" fitWidth="67.0" layoutX="961.0" layoutY="136.0">
     <image>
        <Image url="@Karte.jpg" />
     </image>
  </ImageView>
  <ImageView fx:id="card4" fitHeight="107.0" fitWidth="67.0" layoutX="1037.0" layoutY="136.0">
     <image>
        <Image url="@Karte.jpg" />
     </image>
  </ImageView>
  <ImageView fx:id="card5" fitHeight="107.0" fitWidth="67.0" layoutX="1112.0" layoutY="136.0">
     <image>
        <Image url="@Karte.jpg" />
     </image>
  </ImageView>
  <ImageView fitHeight="107.0" fitWidth="67.0" layoutX="814.0" layoutY="291.0">
     <image>
        <Image url="@Karte.jpg" />
     </image>
  </ImageView>
  <ImageView fitHeight="107.0" fitWidth="67.0" layoutX="1113.0" layoutY="291.0">
     <image>
        <Image url="@Ticket.jpg" />
     </image>
  </ImageView>
  <Button fx:id="card1Button" layoutX="819.0" layoutY="243.0" mnemonicParsing="false" onaction="#card1" text="Pick" />
  <Button fx:id="card2Button" layoutX="892.0" layoutY="243.0" mnemonicParsing="false" onaction="#card2" text="Pick" />
  <Button fx:id="card3Button" layoutX="967.0" layoutY="243.0" mnemonicParsing="false" onaction="#card3" text="Pick" />
  <Button fx:id="card4Button" layoutX="1042.0" layoutY="243.0" mnemonicParsing="false" onaction="#card4" text="Pick" />
  <Button fx:id="card5Button" layoutX="1118.0" layoutY="243.0" mnemonicParsing="false" onaction="#card5" text="Pick" />
  <Button fx:id="card0Button" layoutX="886.0" layoutY="291.0" mnemonicParsing="false" onaction="#card0" text="Blind ziehen" />
  <Button fx:id="AufButton" layoutX="962.0" layoutY="353.0" mnemonicParsing="false" onaction="#Auf" text="Aufträge ziehen" />
  <Button fx:id="BuildTrainButton" layoutX="813.0" layoutY="406.0" mnemonicParsing="false" onaction="#BuildTrain" text="Strecke bauen" />
  <Button fx:id="BuildTrainYardButton" layoutX="1032.0" layoutY="406.0" mnemonicParsing="false" onaction="#BuildTrainYard" text="Bahnhof bauen" />
  <Label fx:id="chooseLabel" layoutX="813.0" layoutY="462.0" text="Wählen Sie mindestens 2 Aufträge aus:" />
  <CheckBox fx:id="choose1" layoutX="811.0" layoutY="489.0" mnemonicParsing="false" text="Auftrag: -" />
  <CheckBox fx:id="choose2" layoutX="811.0" layoutY="522.0" mnemonicParsing="false" text="Auftrag: -" />
  <CheckBox fx:id="choose3" layoutX="811.0" layoutY="555.0" mnemonicParsing="false" text="Auftrag: -" />
</children>
</AnchorPane>

我得到了这个例外:

javafx.fxml.LoadException:

/C:/Users/voglt/eclipse-workspace/ZUZE/target/classes/Host/mainWindowZUZE.fxml:15

at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2625)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2603)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3237)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3194)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3163)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3136)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3113)
at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3106)
at ZUZE.ZUZE/Host.HostGame.firstLoad(HostGame.java:81)
at ZUZE.ZUZE/Host.GameControll.<init>(GameControll.java:17)
at ZUZE.ZUZE/Host.HostWaitForPlayers$1.handle(HostWaitForPlayers.java:57)
at ZUZE.ZUZE/Host.HostWaitForPlayers$1.handle(HostWaitForPlayers.java:1)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8890)
at javafx.controls/javafx.scene.control.Button.fire(Button.java:203)
at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:206)
at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3862)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1849)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2590)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299)
at java.base/java.security.accessController.doPrivileged(accessController.java:391)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
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)
at java.base/java.lang.Thread.run(Thread.java:830)
 Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private javafx.scene.control.Label Host.HostGame.Name0 accessible: module ZUZE.ZUZE does not "opens Host" to module javafx.fxml
at java.base/java.lang.reflect.accessibleObject.checkCanSetaccessible(accessibleObject.java:344)
at java.base/java.lang.reflect.accessibleObject.checkCanSetaccessible(accessibleObject.java:284)
at java.base/java.lang.reflect.Field.checkCanSetaccessible(Field.java:176)
at java.base/java.lang.reflect.Field.setaccessible(Field.java:170)
at javafx.fxml/javafx.fxml.FXMLLoader$Controlleraccessor.addaccessibleFields(FXMLLoader.java:3479)
at javafx.fxml/javafx.fxml.FXMLLoader$Controlleraccessor$1.run(FXMLLoader.java:3444)
at javafx.fxml/javafx.fxml.FXMLLoader$Controlleraccessor$1.run(FXMLLoader.java:3440)
at java.base/java.security.accessController.doPrivileged(accessController.java:312)
at javafx.fxml/javafx.fxml.FXMLLoader$Controlleraccessor.addaccessibleMembers(FXMLLoader.java:3439)
at javafx.fxml/javafx.fxml.FXMLLoader$Controlleraccessor.getcontrollerFields(FXMLLoader.java:3378)
at javafx.fxml/javafx.fxml.FXMLLoader.injectFields(FXMLLoader.java:1170)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processValue(FXMLLoader.java:865)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:759)
at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2722)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2552)
... 57 more

.fxml和Controller都在软件包Host中。 我尝试了类似问题的解决方案,但没有任何效果。我收到的错误消息保持不变。

lixiaolin823 回答:如何在加载我的.fxml时修复java.lang.reflect.InaccessibleObjectException

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2764777.html

大家都在问