在Visual Studio Code IDE和OS X中调试/运行标准Java?

38

我喜欢轻巧的Visual Studio Code在OS X上的使用。一直想要在OS X中从VSC编写、调试和运行标准的Java(而不是JavaScript)代码。找到了下面这个扩展,可以让你从VSC中调试和运行Java代码:

https://marketplace.visualstudio.com/items?itemName=donjayamanne.javadebugger

我尽力按照指示操作。正在尝试运行我的Java应用程序,但在从OS X的VSC中运行Java应用程序时,在调试控制台窗口中出现了大量“error: cannot find symbol”错误。该应用程序在Eclipse中运行良好。我在VSC或OS X的某个地方缺少了什么,以便我可以正确地从OS X的VSC中运行Java代码?

4个回答

53

运行Java有更加简单的方法,无需配置:

  1. 安装Code Runner扩展
  2. 在文本编辑器中打开您的Java代码文件,然后使用快捷键Ctrl+Alt+N,或按F1然后选择/输入Run Code,或右键单击文本编辑器,然后在上下文菜单中点击Run Code,代码将被编译和运行,并且输出结果将显示在输出窗口中。

runJave


18
似乎只有对于没有从类路径中引入任何内容的单个代码文件才起作用。 - Alex Hope O'Connor
4
这不允许您通过控制台提供输入。 - Aditya Vikas Devarapalli
1
@AdityaVikasDevarapalli,请使用此设置“code-runner.runInTerminal:true”来支持输入。 - Jun Han
1
@JunHan 这个设置应该在哪里写? - Lokesh
1
@Lokesh 请参考 https://code.visualstudio.com/docs/getstarted/settings#_creating-user-and-workspace-settings 添加设置。 - Jun Han
我该如何运行Eclipse或NetBeans项目? - Aaron Franke

15

代码运行器扩展只能让您“运行”Java文件。

如果要真正调试Java文件,请进行一次快速的设置:

  • 在VS Code中安装Java Debugger Extension并重新加载。
  • 在VS Code中打开一个空文件夹/项目。
  • 创建您的Java文件。
  • 在同一文件夹中创建一个名为.vscode的文件夹。
  • .vscode文件夹内创建2个文件:tasks.jsonlaunch.json
  • 将下面的配置复制粘贴到tasks.json中:
{
    "version": "2.0.0",
    "type": "shell",
    "presentation": {
        "echo": true,
        "reveal": "always",
        "focus": false,
        "panel": "shared"
    },
    "isBackground": true,
    "tasks": [
        {
            "taskName": "build",
            "args": ["-g", "${file}"],
            "command": "javac"
        }
    ]
}
  • 将以下配置复制并粘贴到launch.json文件中:
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Java",
            "type": "java",
            "request": "launch",
            "externalConsole": true,                //user input dosen't work if set it to false :(
            "stopOnEntry": true,
            "preLaunchTask": "build",                 // Runs the task created above before running this configuration
            "jdkPath": "${env:JAVA_HOME}/bin",        // You need to set JAVA_HOME enviroment variable
            "cwd": "${workspaceRoot}",
            "startupClass": "${workspaceRoot}${file}",
            "sourcePath": ["${workspaceRoot}"],   // Indicates where your source (.java) files are
            "classpath": ["${workspaceRoot}"],    // Indicates the location of your .class files
            "options": [],                             // Additional options to pass to the java executable
            "args": []                                // Command line arguments to pass to the startup class
        }

    ],
    "compounds": []
}

您已经可以调试Java文件,只需要打开任何Java文件并按下F5(Debug->Start Debugging)即可。


提示:*为了在VS code的侧边资源管理器中隐藏.class文件,打开VS code的settings并粘贴以下配置:

"files.exclude": {
        "*.class": true
    }

enter image description here


1
Java调试器已经被弃用了。现在我们将不得不使用Java扩展的调试器。但是,该调试器尚不支持没有项目的源代码调试。https://github.com/Microsoft/vscode-java-debug/issues/89 - gijswijs
请告诉我如何在launch.json中使用多个参数?我只能使用单个参数,但当我使用"args": ["bla","bla"]时,它会不断构建并在vscode中出现问题。 - Abdul Rehman Khan
现在的VS Code会自动在当前目录下生成.vscode/launch.json文件。我正在使用的是VS Code 1.32.1版本。 - dbaltor

13
我可以为您提供Windows的翻译。
1. 从VS Code扩展中安装Java Extension Pack和Code Runner Extension。 2. 在VS Code设置中编辑您的Java主目录位置,“java.home”:“C:\\Program Files\\Java\\jdk-9.0.4”。 3. 检查在VS Code内部终端中是否识别了javac。如果此检查失败,请尝试以管理员身份打开VS Code。 4. 在Main.java文件中创建一个简单的Java程序:
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world");     
    }
}

注意:不要在你的主类中添加包。

  1. 在Java文件的任何位置右键单击并选择运行代码。

  2. 在控制台中检查输出。

完成,希望这有所帮助。


1
谢谢你的“无包装”提示,我不知道你不能这样做。 - DUUUDE123
正如@Ashwin所指出的那样,现在可以调试独立文件。更好的是,VS Code会自动在当前目录下生成.vscode/launch.json文件。我正在使用VS Code版本1.32.1。 - dbaltor
#3 - 以管理员模式启动帮助我解决一个问题,即调试器无法启动,并显示错误消息,指出“端口应该> 0或<65536”,这是一个非常误导性的错误,因为在“启动”模式下运行调试时抱怨端口。当我以管理员模式打开vscode时,它可以正常工作。 - vksp

0
在扩展选项卡中,Microsoft为Visual Studio Code发布了Java Extension Pack。它安装了6个Java开发扩展(语言支持、调试器、IntelliCode等)。我第一次使用它,发现安装非常容易。 enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接