You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Code Runner将文件重命名为tempCodeRunnerFile.java致Java编译错误求助

解决VS Code Code Runner运行Java代码时的公共类文件名不匹配错误

错误提示里出现tempCodeRunnerFile.java,说明Code Runner默认会把你的代码复制到临时文件中执行,而临时文件名和你的公共类Main不一致,触发了Java的命名规范错误(公共类必须与文件名同名)。

解决方案:

  • 方案1:让Code Runner直接在终端运行原文件
    1. 打开VS Code设置(快捷键Ctrl+,)
    2. 搜索Code Runner: Run In Terminal,勾选该选项。这样Code Runner会直接在终端编译运行你的Main.java文件,规避临时文件的问题。
  • 方案2:修改Code Runner的Java执行命令
    打开设置,搜索Code Runner: Executor Map,找到Java对应的配置,替换为:
    "code-runner.executorMap": {
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt"
    }
    
    该命令会先进入代码所在目录,编译原文件,再运行生成的类文件。
  • 临时应急方案(不推荐)
    把公共类的public修饰符去掉,改为class Main,这样即使在临时文件中也能运行,但不符合Java命名规范,仅适合临时测试。

你的代码本身无问题:

import java.util.*;

public class Main{
    public static void main(String [] args) {
        PrintThread t = new PrintThread("thread1");
        t.start();
    }
}

class PrintThread extends Thread {
    private int sleepTime;

    public PrintThread(String name) {
        super(name);
        sleepTime = (int) (Math.random() * 5001);
    }

    public void run() {
        try {
            System.err.println(getName() + " going to sleep for " + sleepTime + ".");
            Thread.sleep(sleepTime);
        } catch(InterruptedException e) {
            e.printStackTrace();
        }

        System.err.println(getName() + " done sleeping.");
    }
}

内容的提问来源于stack exchange,提问作者VuciuS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 23:39:59