我尝试在 Win 10 机器上使用 InteliJ 和 Maven 运行我的应用程序。如果我跑
mvn clean javafx:run
Run Code Online (Sandbox Code Playgroud)
我的 GUI 启动,但如果我使用 org.controlsfx.control.textfield.TextFields 中的 Textfield,我会遇到问题
Exception in thread "JavaFX Application Thread" java.lang.IllegalAccessError: class org.controlsfx.control.textfield.AutoCompletionBinding (in unnamed module @0x19b440d0) cannot access class com.sun.javafx.event.EventHandlerManager (in module javafx.base) because module javafx.base does not export com.sun.javafx.event to unnamed module @0x19b440d0
Run Code Online (Sandbox Code Playgroud)
我发现这是一个已知问题,您必须按照命令传递给 JVM。
--add-exports=javafx.base/com.sun.javafx.event=org.controlsfx.controls
Run Code Online (Sandbox Code Playgroud)
但是我如何在 Maven 中做到这一点?我尝试了 2 种方法。
方式 1: 使用 .mvn/jvm.config 文件并添加此命令,但这根本不会改变任何东西,即使在那里输入无意义的东西。
方式二:使用 --add-export 命令 添加系统变量MAVEN_OPTS。然后 maven 对这个变化做出反应,但说:
WARNING: Unknown module: org.controlsfx.controls specified to --add-exports
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
编辑:方式 …
您好,我遇到了 mssql-jdbc_auth-<Version/Arch>.dll 的问题,如果我手动将其添加到我的路径中,它可以工作,但由于我使用 mave,这不是想要的方式:(。
我将以下几行添加到我的 pom.xml 中
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>8.4.1.jre14</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc_auth -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc_auth</artifactId>
<version>8.4.1.x64</version>
<type>dll</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
dll已下载但似乎未加载:(,因为我仍然遇到SQLServerException :此驱动程序未配置为集成身份验证问题。我如何解决这个问题,它只与maven一起使用,而不是将所有计算机上的dll添加到小路?