Code Runner将文件重命名为tempCodeRunnerFile.java致Java编译错误求助
解决VS Code Code Runner运行Java代码时的公共类文件名不匹配错误
错误提示里出现tempCodeRunnerFile.java,说明Code Runner默认会把你的代码复制到临时文件中执行,而临时文件名和你的公共类Main不一致,触发了Java的命名规范错误(公共类必须与文件名同名)。
解决方案:
- 方案1:让Code Runner直接在终端运行原文件
- 打开VS Code设置(快捷键
Ctrl+,) - 搜索
Code Runner: Run In Terminal,勾选该选项。这样Code Runner会直接在终端编译运行你的Main.java文件,规避临时文件的问题。
- 打开VS Code设置(快捷键
- 方案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
相关产品推荐
相关产品推荐

