调用TextFields.bindAutoCompletion()时TextField崩溃,类未找到异常
问题解决方法
错误根源
异常java.lang.ClassNotFoundException: org.controlsfx.control.textfield.TextFields明确说明JVM无法找到ControlsFX的类文件——你的VM参数仅配置了JavaFX的模块路径,未将ControlsFX的依赖纳入加载范围。
解决步骤
确认版本兼容性
确保使用的ControlsFX版本与JavaFX 21.0.2适配,推荐选用ControlsFX 11.1.2及以上版本(适配JavaFX 11+)。更新VM参数
将ControlsFX jar包所在目录加入--module-path,同时添加ControlsFX模块:--module-path /media/alumne/ssd_clase/PRO/JavaJDK/javafx-sdk-21.0.2/lib:/实际路径/controlsfx/lib --add-modules=javafx.controls,javafx.fxml,org.controlsfx.controls --add-exports javafx.base/com.sun.javafx.event=ALL-UNNAMED注意:将
/实际路径/controlsfx/lib替换为你存放ControlsFX jar包的真实目录,直接写单个jar文件路径也可。非模块化项目替代方案
如果项目没有module-info.java(非模块化),可改用类路径参数:--add-modules=javafx.controls,javafx.fxml --add-exports javafx.base/com.sun.javafx.event=ALL-UNNAMED -cp /media/alumne/ssd_clase/PRO/JavaJDK/javafx-sdk-21.0.2/lib/*:/实际路径/controlsfx/controlsfx.jar构建工具依赖配置(可选)
若使用Maven或Gradle,直接在构建文件中添加ControlsFX依赖:- Maven示例:
<dependency> <groupId>org.controlsfx</groupId> <artifactId>controlsfx</artifactId> <version>11.1.2</version> </dependency> - Gradle示例:
implementation 'org.controlsfx:controlsfx:11.1.2'
- Maven示例:
内容的提问来源于stack exchange,提问作者Marc Rovira
相关产品推荐
相关产品推荐

