Eclipse:项目“PROJECT_NAME”没有显式编码集

问题描述 投票:0回答:5

我今天从 Windows 11 降级到 Windows 10,并且必须重新安装 Eclipse-IDE。
成功导入我的工作区并修复项目后,每个项目都会出现一条警告,提示“项目 XXX 没有显式编码集”。我已经找到了解决方案,只得到了一些针对 VSCode 的修复。

我有 Eclipse 2021-6 并安装了 Eclipse 2022-6

java eclipse ide
5个回答
62
投票

是的,没有显式默认编码的项目的警告Eclipse 2022-06(4.24)中的事物。

要设置显式默认编码,请执行以下操作之一:

  • Problems 视图中,选择警告,点击 Ctrl+1 并应用提供的快速修复(将项目编码显式设置为工作区编码)
  • 项目>属性:资源
  • 中手动更改项目

另请参阅我的视频展示并解释了这一点

当使用 Maven 或 Gradle 等构建系统时,请按如下方式设置编码:

Maven

  1. pom.xml
    中将属性
    project.build.sourceEncoding
    设置为
    UTF-8
    :

    UTF-8
  2. 右键单击项目文件夹并选择 Maven > 更新项目...

摇篮

  1. build.gradle
    中将
    compileJava.options.encoding
    设置为
    UTF-8
    compileJava.options.encoding = 'UTF-8'
  2. 右键单击项目文件夹并选择 Gradle > 刷新 Gradel 项目
  3. 只要 Eclipse Buildship 问题 #344 未修复,请按照上述方式手动更改编码

7
投票

如果您希望忽略所有项目的此警告,您可以更改首选项:

常规 -> 工作区 -> 将丢失的项目编码报告为:忽略


2
投票

如果您使用 Maven,每次运行“更新项目”时都会出现警告,因为项目配置是从 POM 文件重新创建的。要永久消除此警告,请将其添加到您的 POM 文件中:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

然后,运行“更新项目”,警告就消失了。 您可以在这里找到更多信息:https://maven.apache.org/plugins/maven-resources-plugin/examples/encoding.html


0
投票

如果您使用 Maven,请将类似于以下内容的内容添加到您的

pom.xml

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${maven.resources.plugin.version}</version>
                    <configuration>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>

0
投票

如果您想进行 Eclipse 设置的这一部分(例如,通过 Gradle 中的 eclipse 任务),请在 .settings 文件夹中创建一个名为“org.eclipse.core.resources.prefs”的文件,其中包含以下内容 -

eclipse.preferences.version=1
encoding/<project>=UTF-8

这将是 gradle 的 eclipse 任务中的命令 -

new File(".settings", "org.eclipse.core.resources.prefs").text = """eclipse.preferences.version=1
encoding/<project>=UTF-8
"""
© www.soinside.com 2019 - 2024. All rights reserved.