You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 03:05:32