【问题标题】:How to hide unwanted log messages on Visual Studio Code, running Java code如何在运行 Java 代码的 Visual Studio Code 上隐藏不需要的日志消息
【发布时间】:2020-10-10 19:22:26
【问题描述】:

我正在使用 Visual Studio Code 编写 Java 程序。 一切正常,除了我在运行代码时总是收到不需要的消息。 例如,我创建了一个非常简单且基本的 Java 项目,其中包含一个 App.java 文件(在 src 文件夹中,默认包):

public class App {
    public static void main(String[] args) throws Exception {
        System.out.println("Hello, World!");
    }
}

我已经安装了 Java Test Runner 和 Debugger for Java 扩展。如果我按“运行”,我会得到:

PS C:\Users\Light\Documents\J\JVsc>  cd 'c:\Users\Light\Documents\J\JVsc'; & 'c:\Users\Light\.vscode\extensions\vscjava.vsco\extensions\vscjava.vscode-java-debug-0.28.0\scripts\launcher.bat' 'C:\Program Files\Java\jdk-11.0.1\bin\javaTF-8' '-cp' 'C:\Users\Ri.exe' '-Dfile.encoding=UTF-8' '-cp' 'C:\Users\Light\AppData\Roaming\Code\User\workspaceStorage\67e3f4593863e5815\bin' 'App'       7c280b6c994f0132b01b2\redhat.java\jdt_ws\JVsc_623e5815\bin' 'App'
Hello, World!

这很糟糕,我必须为学校目的录制视频,我不希望这些消息出现。我什至不知道这是否是调试器问题。

似乎VSC在运行程序之前调用了“CD命令”。 我曾尝试更改 launch.json 设置 "console": "internalConsole" 但它并没有解决问题,以这种方式设置的情况是根本不显示任何输出。

如果我输入“cd src”然后手动调用“java App.java”它会打印没有该消息的 Hello World,但显然我不想手动输入编译和运行命令。

【问题讨论】:

  • 你可以做一个复合任务
  • @rioV8 什么是复合任务?
  • 我应该如何处理复合任务,他们为什么要解决这个问题?
  • 你可以定义你想在不同任务中运行的shell命令,并将它们组合成一个复合任务

标签: java visual-studio-code vscode-debugger


【解决方案1】:

有一些解决方法:

1.在settings.json中添加:

"terminal.integrated.enableFileLinks": false,

这将在集成终端输出之前显示更少的脚本。

2.在launch.json中设置"console": "externalTerminal",你会得到一个外部控制台,并且在实际输出之前不会显示任何脚本:

3.安装扩展Code Runner并在settings.json中添加如下代码:

"code-runner.clearPreviousOutput": true,
"code-runner.showExecutionMessage": false,

【讨论】:

  • 谢谢,但是这样你只能得到 OUTPUT。在输出选项卡中,您可以编写输入:您收到错误“无法在只读编辑器中编辑”。因此,如果我使用的是带有 System.in 的扫描仪,我将无法使用此解决方案。我可以修复它吗?
  • 是的,这是代码运行器的劣势。并且没有办法隐藏所有脚本,只有一些解决方法,我也编辑我的答案,请看看。
【解决方案2】:

  1. 安装代码运行器扩展

  2. 转到文件>首选项>设置 搜索“代码运行器:在终端中运行”并使其接受来自扫描仪的输入。

  3. 转到文件>首选项>设置,然后搜索“执行器映射”>单击settings.json中的编辑 并添加以下与编程语言对应的修改,例如java:

Java : "函数提示符{ \">>\"} && clear && tput setaf 6 && cd $dir && javac $fileName && java $fileNameWithoutExt && echo `n && tput setaf 5",

您可以查看我的视频以获得详细说明

https://youtu.be/WM5iW8SyGpk

https://youtu.be/yq8j3AsEOL0

【讨论】:

    【解决方案3】:

    我们可以得到的最接近的方法是在代码运行器运行代码之前清除终端。为此:

    1. 使用Code Runner 扩展
    2. 在您的 settings.json 文件中,更改 code-runner.executor 映射中的 java 值,使其如下所示:
    "code-runner.executorMap": {
    "java": "cd $dir && javac $fileName && clear && java $fileNameWithoutExt"
    }
    

    一些屏幕截图:

    1. code runner not running
    2. just hit the run code button
    3. cleared console
    4. answered questions
    5. final output after everything

    【讨论】:

      猜你喜欢
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多