我下载了一个现有的项目,该项目在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中构建项目?
我希望有人可以帮助我解决我的困惑,或者知道问题可能出在哪里。
谢谢。
答案 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新手仍然会遇到这个问题,因此希望他们会看到这个切实可行的解决方案。