java - Visual Studio Code 不再编译 Java
问题描述
我使用 VSCode 来编译和调试简单的 Java 程序。效果很好。只需按 F5,进入您的主课程,然后再次按 F5。可悲的是,自从几天前我重新启动了我的电脑后,VSCode 将不再运行我的任何程序。即使是以前工作的东西也不再运行。
我正在使用这些扩展:Java 调试器、Java 语言支持。
每次按 F5 都会收到一条错误消息:
Error: Could not find or load main class HelloWorld
Caused by: java.lang.ClassNotFoundException: HelloWorld
我什么都试过了。我完全卸载并重新安装了 VSCode 和 Java(包括所有临时文件、缓存和设置)。我遵循了每个故障排除指南,但我无法再让它工作了。
我的代码:
/**
* HelloWorld
*/
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
启动.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "Debug (Launch) - Current File",
"request": "launch",
"mainClass": "HelloWorld"
}
]
}
Java 日志的语言支持:
[Error - 10:47:04] 12.10.2019, 10:47:04
null
org.eclipse.jface.text.BadLocationException
at org.eclipse.jface.text.ListLineTracker.getLineOffset(ListLineTracker.java:197)
at org.eclipse.jface.text.AbstractLineTracker.getLineOffset(AbstractLineTracker.java:160)
at org.eclipse.jface.text.AbstractDocument.getLineOffset(AbstractDocument.java:876)
at org.eclipse.core.internal.filebuffers.SynchronizableDocument.getLineOffset(SynchronizableDocument.java:323)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceDiagnosticsHandler.convertRange(WorkspaceDiagnosticsHandler.java:361)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceDiagnosticsHandler.toDiagnostic(WorkspaceDiagnosticsHandler.java:338)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceDiagnosticsHandler.lambda$3(WorkspaceDiagnosticsHandler.java:322)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceDiagnosticsHandler.toDiagnosticsArray(WorkspaceDiagnosticsHandler.java:324)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceDiagnosticsHandler.publishDiagnostics(WorkspaceDiagnosticsHandler.java:263)
at org.eclipse.jdt.ls.core.internal.handlers.WorkspaceDiagnosticsHandler.publishDiagnostics(WorkspaceDiagnosticsHandler.java:198)
at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer$1.run(JDTLanguageServer.java:266)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
[Error - 10:47:24] 12.10.2019, 10:47:24 Error occured while building workspace. Details:
message: Preview features enabled at an invalid source release level 12, preview can be enabled only at source level 13; code: 2098258; resource: C:/Users/Johannes/Desktop/HelloWorld/HelloWorld.java;
编辑:评论中提到的解决方案有效。只需更新到 JDK 13,它就会再次工作。
解决方案
推荐阅读
- android - Android Oreo - JobScheduler 会在一段时间后停止
- bash - 在 Bash Azure 函数中使用 JQ
- angular - 角度路由在页面刷新时无法在 Netlify 上运行
- reactive-programming - 将 Mono 与发射的每个 Flux 元素结合起来
- android - 如何为我可以访问的 db 文件指定一个特定位置,而不是标准应用程序 /data/data/appid/database
- flexbox - 当我使用 flex-flow 和网格系统类时,为什么我的 Bootstrap 4 页面行不换行?
- performance - 如何对未投入生产的应用程序进行性能测试?
- amazon-web-services - 如何将多个源映射到 AWS Glue 作业中的单个目标
- javascript - Generators + Promises 解释
- javascript - 在 React 中切换 aria-pressed 角色以实现 Web 可访问性的最有效方法