使用vscode

时间:2018-09-01 12:53:53

标签: java visual-studio-code

我下载了一个现有的项目,该项目在eclipse / intelliJ等中运行正常。我想使其在Visual Studio代码中运行。 我已经下载了打开.java文件时vscode建议的各种扩展名,还配置了launch.json文件来查找我的主类,等等。 我按F5键启动应用程序,出现的错误是:

Error: Could not find or load main class pacman.Executor
Caused by: java.lang.ClassNotFoundException: pacman.Executor

这不是我遇到的唯一错误,在出现此错误之前,我就遇到了这个问题:

build project cannot be resolved to a type
我在main方法中使用的某些类中的

。该错误似乎刚刚消失,而且我不知道我是要进一步解决问题还是更进一步,我无法复制此错误。

我的launch.json如下所示:

"configurations": [
    {
        "type": "java",
        "name": "Debug (Launch)-Executor",
        "request": "launch",
        "cwd": "${workspaceFolder}",
        "console": "internalConsole",
        "stopOnEntry": false,
        "mainClass": "pacman.Executor",
        "args": ""
    }
]

我担心问题可能与类路径有关,但是我已经尝试了一些方法,例如直接在launch.json中将其设置为我的jdk和jre,而没有运气。

此外,当前我不使用Maven或类似的东西-使用Redhat Java插件时,是否可以从vscode中构建项目?

我希望有人可以帮助我解决我的困惑,或者知道问题可能出在哪里。

谢谢。

3 个答案:

答案 0 :(得分:0)

我不确定问题到底出在哪里,但是您可以通过向工作场所添加任务(通过创建tasks.json文件并将其放入{{1})来确保正确编译Java文件。 }文件夹),然后在运行程序之前启动(使用.vscode代码。

首先,添加compile java任务。在以下代码中,launch.json是与bin相关的类路径(${workspaceFolder}默认为工作区文件夹)。如果文件位于工作空间文件夹中,则可以将cwd替换为bin(当前目录)。 .包含当前文件目录中的所有Java文件。这对于处理软件包特别有用。如果您只想编译当前文件,则可以将${fileDirname}\\*.java替换为文件名(例如 pacman )。

*

第二,将{ "version": "2.0.0", "tasks": [ { "label": "compile java", "type": "shell", "command": "javac -d bin -cp bin ${fileDirname}\\*.java", "group": "build" } ] } 参数添加到您的preLaunchTask代码中。它必须与您为任务指定的名称相同(在本例中,我将其命名为“ compile java”)。此参数强制给定任务在启动代码之前(在运行文件之前)运行。

launch.json

我不确定这是否可以解决您的问题,但是我希望它能有所帮助。

您可以参考一些资源以获取更多信息:

答案 1 :(得分:0)

我想我找到了解决此问题的方法。您需要做的只是指向mainClass变量中的.java文件,例如,不是“ something.Class”,而是“ actualFilename.java”。完成此操作后,VSCode成功找到了我的主类。

答案 2 :(得分:0)

您代码中的“ NAME”类应与您在其中编写代码的“ NAME”文件相同。那应该可以解决您的问题。

编辑: 我知道这个线程已经使用了2年以上,但是我仍然在添加这个答案,因为VSCode中的Java新手仍然会遇到这个问题,因此希望他们会看到这个切实可行的解决方案。