Visual Studio代码没有为我提供任何Java代码完成(只是单词完成):

enter image description here

我已经配置了JDK:

"java.configuration.runtimes": [
    {
        "name": "JavaSE-11",
        "path": "/usr/lib/jvm/jre-11-openjdk",
        "default": true
    },
    {
        "name": "JavaSE-17",
        "path": "/usr/lib/jvm/jre-17-openjdk",
    }   
]

我已经安装了Java Extension Pack,我没有得到任何错误或东西.

还有其他建议吗?问题可能出在哪里?

Help: About

Version: 1.83.1
Commit: f1b07bd25dfad64b0167beb15359ae573aecd2cc
Date: 2023-10-10T23:45:31.402Z
Electron: 25.8.4
ElectronBuildId: 24154031
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: 11.4.183.29-electron.0
OS: Linux x64 6.5.8-200.fc38.x86_64

Red Hat Java扩展是v1.24.0(我也try 回滚到v1.23.0)

EDIT

现在我确实收到了一些错误:

Caused by: java.lang.NullPointerException: Cannot invoke "org.eclipse.jdt.ls.core.internal.preferences.PreferenceManager.getPreferences()" because the return value of "org.eclipse.jdt.ls.core.internal.JavaLanguageServerPlugin.getPreferencesManager()" is null
    at org.eclipse.jdt.ls.core.internal.preferences.Preferences.setJavaCompletionFavoriteMembers(Preferences.java:1378)
    at org.eclipse.jdt.ls.core.internal.preferences.Preferences.createFrom(Preferences.java:1126)
    at org.eclipse.jdt.ls.core.internal.handlers.BaseInitHandler.handleInitializationOptions(BaseInitHandler.java:113)
    at org.eclipse.jdt.ls.core.internal.handlers.InitHandler.handleInitializationOptions(InitHandler.java:105)
    at org.eclipse.jdt.ls.core.internal.handlers.BaseInitHandler.initialize(BaseInitHandler.java:64)
    at org.eclipse.jdt.ls.core.internal.handlers.JDTLanguageServer.initialize(JDTLanguageServer.java:284)
    ... 16 more

这个错误不断出现.对Java项目的分析永远不会结束.奇怪的是,当分析运行时,代码完成现在可以工作了.

EDIT

我确实在我的机器上更新到了Java 17,现在至少错误消息消失了,但我仍然没有得到Java的代码完成.

Fedora 38
OpenJDK 17.0.8

推荐答案

哦,这太愚蠢了.我忘记在我的maven配置中设置一些属性.

我使用两个属性在编译器插件中设置Java版本:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>${maven.compiler.source}</source>
        <target>${maven.compiler.target}</target>
    </configuration>
</plugin>

但是我忘了设置这两个属性.奇怪的是,我没有收到任何错误消息,它们没有设置. 但我也没有在控制台上构建项目.

在定义了属性之后,一切都正常工作.

所以,谢谢你所有的帮助!很抱歉浪费了你的时间!

Java相关问答推荐

方法没有用正确的值填充数组—而是将数组保留为null,'

如何在Javascript中设置文本区域圆角的样式

Java Stream,需要更新列表对象列表

不推荐使用的Environment.getExternalStorageDirectory().getAbsolutePath()返回的值不同于新的getExternalFilesDir(空)?

Java 21虚拟线程执行器的性能比池化操作系统线程的执行器差?

是否在允许数组元素为空时阻止 idea 为空性警告?

名称冲突具有相同的擦除

内存中的H2修剪尾随空格

将带有js文件的 bootstrap 程序导入maven项目时出错

在Spring Boot应用程序中导致";MediaTypeNotSupportdException&qot;的映像上载

如何让JavaFx应用程序识别依赖项?

如何在Java记录中设置BigDecimal类型属性的精度?

Javadoc在方法摘要中省略方法

项目react 堆中doOnComplete()和Subscribe()的第三个参数之间的差异

AWS Java SDK v2.x中没有setObjectAcl方法

使用for循环时出现堆栈溢出错误,但如果使用if块执行相同的操作,则不会产生错误

RestTemplate Bean提供OkHttp3ClientHttpRequestFactory不支持Spring Boot 3中的请求正文缓冲

JPA无手术同品种器械可能吗?

在WHILE()循环初始化部分中声明和初始化变量的Java语法?

保持标题窗格的箭头可见,即使设置为不可折叠