【问题标题】:Visual Studio Code - Java Classpath is incomplete. Only syntax errors will be reportedVisual Studio Code - Java 类路径不完整。只会报告语法错误
【发布时间】:2017-04-11 10:21:33
【问题描述】:

在对 python 进行了一些丰富的经验之后,我正在使用 java 迈出第一步。我正在运行的脚本是一个简单的 Java Swing Gui,它可以在命令行和 VS Code 中正常编译和运行。

为了设置 java 调试环境,我使用了 github 站点 https://github.com/k--kato/vscode-javadebug 上建议的 lauch.json 设置。

不幸的是,每次我打开包含脚本的文件夹时,都会收到以下错误消息:

Warn: Classpath is incomplete. Only syntax errors will be reported.

我不知道问题是否来自 VS Code,是否是其他配置问题,例如 java 设置....

我的工作平台是 Linux Ubuntu,Gnome Shell。

有人可以帮忙吗?

这是脚本:

//file name = SimpleEx.java 

import java.awt.EventQueue;
import javax.swing.JFrame;

public class SimpleEx extends JFrame {

    public SimpleEx() {

        initUI();
    }

    private void initUI() {

        setTitle("Simple example");
        setSize(300, 200);
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {

        EventQueue.invokeLater(() -> {
            SimpleEx ex = new SimpleEx();
            ex.setVisible(true);
        });
    }
}

这是我的launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Java",
            "type": "java",
            "request": "launch",
            "stopOnEntry": true,
            "cwd": "${fileDirname}",
            "startupClass": "${fileBasename}",
            "options": [
                "-classpath",
                "${fileDirname}"
            ]
        },
        {
            "name": "Java Console App",
            "type": "java",
            "request": "launch",
            "stopOnEntry": true,
            "cwd": "${fileDirname}",
            "startupClass": "${fileBasename}",
            "options": [
                 "-classpath",
                 "${fileDirname}"
            ],
            "externalConsole": true
        }
    ]
}

【问题讨论】:

  • 不是一个答案,但 Java 生态系统非常非常丰富和成熟。至少有 3 个免费的 Java IDE 比 VSCode 更先进。我强烈建议使用其中之一(IntelliJ、Eclipse、NetBeans)。
  • 谢谢,JB,我正在考虑 .... 仍然想坚持使用 VS Code,但我一定会尝试一下 ..
  • 我收到了完全相同的警告。而我的只是一个简单的 Hello World 控制台应用程序!
  • 查看 vscode-java 扩展项目的讨论。 github.com/redhat-developer/vscode-java/issues/107
  • 日常工作的解决方法很困难。我以 Intellij CE 结束

标签: java visual-studio-code


【解决方案1】:

对于使用 Visual Studio Code 遇到此问题的用户,您可以尝试卸载您一直在使用的 java 扩展并重新安装。

【讨论】:

【解决方案2】:

在 VS Code 中,只需右键单击 src(您的项目源文件夹)并选择 “将文件夹添加到 Java 源路径” 选项。如果不起作用,请先尝试通过选择“从 Java 源路径中删除文件夹” 将其删除(这不会导致任何数据丢失),然后再次添加。 p>

完成后重新启动一次。 希望它对你有用。

【讨论】:

  • 这个简单的技巧对我有用!为更多人点赞
  • 我希望我早点看到这个。
【解决方案3】:

我在编译过程中遇到了这个错误以及Cannot resolve the modulepaths/classpaths automatically, please specify the value in the launch.json。

我所要做的就是在View 或Ctrl+Shift+P 中打开Command Palette,然后运行命令Clean Java Server Language Workspace,一切又开始正常工作了。

【讨论】:

    【解决方案4】:

    我偶然发现了这个问题并自行解决了。我试图从它所在的文件夹外部编译和运行我的 java 文件。那时我得到了上面提到的相同的“类路径”错误操作。进入文件所在的目录后,我就可以毫无问题地运行了。

    【讨论】:

      【解决方案5】:

      只需按 ctrl+shift+p 并键入 Create Java Project 然后单击 no build tools 它将要求选择文件夹,然后选择文件夹并要求创建文件名,为文件命名它将创建所需的项目和文件,您不必担心类路径错误。然后像往常一样在新项目的 src 文件夹中创建你的类文件并继续你的编程!

      【讨论】:

        【解决方案6】:

        如果这对其他人有帮助,我必须在 .classpath 中更改这一行

        <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
        

        到

        <classpathentry excluding="**" kind="src" output="target/classes" path="src/main">
        

        我只需要改变路径就可以了

        【讨论】:

          【解决方案7】:

          我知道为时已晚,但如果你将项目转换为 Eclipse,则可以简单地解决这个问题,在你的根目录中使用这个简单的命令 mvn eclipse:eclipse(假设你使用的是 maven)这将添加 .classpath 文件。在这种情况下,您的 src/* 文件将是项目文件

          在 vim 中也在 vscode 和 coc-java 上测试过

          【讨论】:

            【解决方案8】:

            我知道这是一个老问题,但是任何在这里遇到问题并需要快速简单的解决方法的人都可以在这里找到它。安装扩展:Eclipse New Java Project。

            它模拟 Eclipse 操作 create Java Project 的行为,应该会产生您需要的结果。

            只需按Ctrl + Shift + P 并输入New Java Project(它会在几个字母后弹出)并按照简单的说明进行操作。 (它只是询问项目的名称)。

            它将创建所需的项目和文件,您不必担心类路径错误。 然后像往常一样在新项目的src 文件夹中创建您的类文件并继续您的编程!

            【讨论】:

            • 我按照这个步骤但是它只创建了 2 个文件夹 src 和 bin。
            【解决方案9】:

            由于 Microsoft Visual Studio Code 生态系统正在为 Java 快速发展,因此有一个方便的解决方案可以极大地帮助生成 - 只需几个步骤 - 可与 VS Code 一起使用的功能正常的 Java 项目结构。

            当然还有其他使用 Java 的解决方案,比如 NetBeans,但我一直非常喜欢 VS Code,只是等到有更简单的方法出现后再重新使用它。

            我发现的非常简单的解决方案是使用 MAVEN。 Maven 在您的主文件夹中创建整个项目结构和初始配置文件,您可以立即使用 VS Code 打开并运行它,而无需任何麻烦。

            当然,您必须安装 Java 扩展,如 here 所述。

            我在网上找到here的解决方案有点过时,所以我做了一些改编。

            这是Linux机器上的进程:

            1. 检查你是否安装了 MAVEN

              • 在终端中输入:

                mvn --version
                
              • 如果没有安装maven,输出会提示安装命令;

            2. 调用 maven 快速入门原型来生成您的新项目;

              • 在终端内输入或复制:

                mvn archetype:generate
                
              • 这将打开一个包含 2000 多种疼痛类型的可怕列表以供选择。好消息是,如果不填数字,maven-archetype-quickstart 会被自动选中,所以直接回车即可。

              • 从列表中选择一个版本并输入数字:我选择了建议的数字 = 6

              • 为属性 groupId 选择一个值:

                com.mycompany.app  
                
              • 为属性“artifactId”定义一个值(这将在您的主目录中创建文件夹):

                my-app
                
              • 定义“版本”的值:1.0

              • 定义属性“包”的值:

                com.mycompany.app
                
              • 确认选项,项目将生成。

            3. 用新项目启动 VS Code

              • 在终端类型中:

                code ./my-app 
                
            4. 配置 Launch.json 文件

              • 在调试器的左上角,在绿色的右侧,显示“无配置”,从下拉字段中选择“Java”,.json 文件将自动生成。
            5. 配置一个Task.json

              • 转到菜单栏中的任务;
              • 配置任务......
              • 从模板创建task.json ....
              • 从下拉列表中选择“maven”,将自动生成 .json 文件。

            你可以走了。

            【讨论】:

              【解决方案10】:

              当您打开 redhat.java 扩展名无法确定其类路径的 java 文件时,会显示此警告。要获得扩展的全部好处,请使用带有 maven pom.xml 的项目(很快也会使用 gradle),或者使用最少默认的 eclipse 设置文件,即 .classpath .project 文件。

              【讨论】:

              【解决方案11】:

              搜索这个我发现 vscode 现在只识别 maven 项目或 eclipse 项目,所以它需要一个 .classpath 文件。所以最好的选择是先用maven创建项目,然后用vscode打开。

              【讨论】:

              • 谢谢大家的建议。现在使用 InteliJ,开箱即用,无需担心配置。
              猜你喜欢
              • 1970-01-01
              • 2020-06-16
              • 1970-01-01
              • 2018-03-19
              • 2020-09-01
              • 1970-01-01
              • 2019-10-30
              • 2018-10-18
              • 2018-01-26
              相关资源
              最近更新 更多