VSCode无法识别JavaFX与TestNG包但程序可正常运行求助
问题:JavaFX与TestNG包导入显示红色下划线,但程序可正常编译运行
程序能正常编译并通过所有测试,但VSCode里import的JavaFX和TestNG包下方始终有红色下划线。已重装VSCode及Java扩展包,当前系统内核为5.18.0-2-rt11-MANJARO。
当前settings.json配置:
{ //settings.json "java.project.referencedLibraries": [ "lib/**/*.jar", "/home/michaelg/Java/javafx-sdk-18.0.2/lib/javafx.base.jar", "/home/michaelg/Java/javafx-sdk-18.0.2/lib/javafx.controls.jar", "/home/michaelg/Java/javafx-sdk-18.0.2/lib/javafx.fxml.jar", "/home/michaelg/Java/javafx-sdk-18.0.2/lib/javafx.graphics.jar", "/home/michaelg/Java/javafx-sdk-18.0.2/lib/javafx.media.jar", "/home/michaelg/Java/javafx-sdk-18.0.2/lib/javafx.swing.jar", "/home/michaelg/Java/javafx-sdk-18.0.2/lib/javafx.web.jar", "/home/michaelg/Java/javafx-sdk-18.0.2/lib/javafx-swt.jar", "/home/michaelg/Java/jquery-3.5.1.jar", "/home/michaelg/Java/slf4j-api-1.7.9.jar", "/home/michaelg/Java/slf4j-simple-1.7.9.jar", "/home/michaelg/Java/testng-7.7.0-20220518.034525-1.jar", "/home/michaelg/Java/jcommander-1.81.jar" ], "java.home": "/home/michaelg/Java/jdk-18.0.2.1", "java.debug.settings.vmArgs": "--module-path \"/home/michaelg/Java/javafx-sdk-18.0.2/lib\" --add-modules javafx.controls,javafx.fxml", "java.test.config": [ { "name": "myConfiguration", "workingDirectory": "${workspaceFolder}", } ], "java.project.outputPath": "bin" }
测试用JavaFX代码:
package edu.realemj.Example; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.stage.Stage; public class HowdyFX extends Application { public void start(Stage primaryStage) { Button btOK = new Button("OK"); Scene scene = new Scene(btOK, 400, 250); primaryStage.setTitle("Hello from JavaFX!"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } }
修复建议
- 清理Java语言服务器缓存:打开命令面板(
Ctrl+Shift+P),输入Java: Clean Java Language Server Workspace,确认后重启VSCode,解决缓存损坏导致的语法提示异常。 - 调整JavaFX模块配置:JavaFX是模块化框架,单独添加jar无法让语言服务器识别模块信息。修改
settings.json中referencedLibraries部分,替换原有JavaFX jar条目为:{ "module": true, "paths": ["/home/michaelg/Java/javafx-sdk-18.0.2/lib"] } - 更换TestNG正式版:当前使用的是TestNG快照版本,可能存在元数据不全问题。替换为7.7.0正式版jar,重新添加到依赖列表。
- 删除冲突配置文件:如果项目中有
.classpath或project.json文件,会和VSCode配置冲突,删除后让VSCode重新生成项目配置。 - 强制项目同步:打开命令面板,输入
Java: Refresh Java Projects,触发语言服务器重新加载依赖。
内容的提问来源于stack exchange,提问作者hugsforknife
相关产品推荐
相关产品推荐

