返回社群
攻略

如何制作Minecraft模组:Fabric项目、Java代码与JAR构建

本攻略以 Minecraft Java Edition 26.2 和 Fabric 为基础,教你制作一个在首次运行时输出日志的模组。这是一个入门示例,带你了解模组文件被加载器识别并执行你所编写的 Java 代码的全过程。由于其结构与基岩版附加包(Bedrock Add-ons)、Forge 和 NeoForge 项目不同,请勿将它们混在一个项目中。

1. 准备开发环境

Fabric 当前的 26.2 文档推荐使用 JDK 25。不要只安装 Java 运行时环境,请安装开发用的 JDK 并准备好 IntelliJ IDEA 或 VS Code。请在终端中使用以下命令检查实际正在使用的 Java。IDE 的 Project SDK 和 Gradle JVM 也必须指向同一版本。若要为 1.21.1 等旧版本进行开发,请同时更改文档顶部的版本选择和生成器版本,并遵循该版本的 JDK 要求。

java -version
javac -version
Minecraft Fabric · 버전부터 맞추기 — TroubleMaker 운영팀 제작 · 제작·테스트 절차 도식
Minecraft Fabric · 버전부터 맞추기 — TroubleMaker 운영팀 제작 · 제작·테스트 절차 도식

2. 在 Fabric 生成器中创建项目

  1. 打开官方的 Fabric Template Mod Generator。
  2. 将 Mod Name 设为 TroubleMaker Hello,Mod ID 设为 tmhello,Package Name 设为 com.ascgame.tmhello。
  3. 将 Minecraft 版本设置为 26.2。首个示例中无需添加 Kotlin 或单独的数据生成等高级选项。
  4. 下载 ZIP 并将其解压到类似 C:/Projects/TMHello 的简单路径中。项目文件夹请根据你的实际操作系统来决定。
  5. 在 IDE 中打开 build.gradle 或项目根目录,并等待 Gradle 导入完成。请保留生成器所确定的 Loader、Loom 和 API 版本不变。

3. 理解文件的作用

src/main/java 用于存放通用的 Java 代码,src/main/resources/fabric.mod.json 用于声明模组 ID、入口类和依赖项,gradle.properties 则负责版本和项目设置。根据生成器的不同,客户端代码可能会被分到 src/client/java。本示例仅修改通用的初始化代码。请勿随心所欲地删除所有配置文件,或用网上的其他版本设置覆盖它们。

4. 编写你的初始化类

找到生成的通用 ModInitializer 实现文件,并将其修改为如下结构。如果你将文件名改为了 TMHello.java,请确保 package 文件夹和类名也与之匹配。由于使用了 SLF4J 日志,你可以在不使用那些在不同游戏版本间容易发生变动的物品注册 API 的情况下,确认初始化是否成功。

package com.ascgame.tmhello;

import net.fabricmc.api.ModInitializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TMHello implements ModInitializer {
    public static final String MOD_ID = "tmhello";
    private static final Logger LOG = LoggerFactory.getLogger(MOD_ID);

    @Override
    public void onInitialize() {
        LOG.info("TroubleMaker: my first Fabric mod is ready.");
    }
}

在保持 fabric.mod.json 其他内容不变的同时,确认 entrypoints.main 指向了上述类的全名。以下是需要检查的部分,而非整个文件。请勿将原有的 mixins 或客户端设置整段替换。

{
  "entrypoints": {
    "main": ["com.ascgame.tmhello.TMHello"]
  }
}
내 Java 코드가 로더에 연결되는 구조 — TroubleMaker 운영팀 제작 · 제작·테스트 절차 도식
내 Java 코드가 로더에 연결되는 구조 — TroubleMaker 운영팀 제작 · 제작·테스트 절차 도식

5. 开发运行与最终文件构建

  1. 在项目根目录下,Windows 运行 gradlew.bat runClient,macOS/Linux 运行 ./gradlew runClient。
  2. 在开发客户端控制台或 run/logs/latest.log 中搜索 TroubleMaker 字样。这是一个在进入世界之前的初始化阶段仅输出一次的示例。
  3. 关闭游戏,Windows 运行 gradlew.bat build,macOS/Linux 运行 ./gradlew build 来生成分发文件。
  4. 在 build/libs 中确认常规的分发 JAR。请勿将名称中带有 sources 或 dev 的开发用文件当作常规分发包使用。
  5. 将 JAR 放入相同 Minecraft 版本的独立 Fabric 实例的 mods 文件夹中。如果生成的依赖项中包含 Fabric API,请安装与其版本相匹配的 Fabric API。
  6. 使用实际的启动器运行,并确认实例的 logs/latest.log 中打印出了相同的字样。

6. 常见错误与恢复

若遇到 Unsupported class file version,请首先检查 Java 版本;若遇到入口类加载错误,请检查 package、类名和 entrypoints 是否不匹配。如果放入 mods 文件夹后毫无反应,请确认是否放错了启动器实例。本示例未添加存档数据,因此你可以退出游戏并移除 JAR 进行对比。后续添加物品或方块时,请继续阅读目标版本的 Fabric First Item 文档,并将文件路径和注册 API 调整为该版本的对应标准。

개발 실행에서 배포까지 — TroubleMaker 운영팀 제작 · 제작·테스트 절차 도식
개발 실행에서 배포까지 — TroubleMaker 운영팀 제작 · 제작·테스트 절차 도식

7. 分享时需附带的信息

请在 README 中写明模组 ID、支持的 Minecraft 版本、Loader 与 Fabric API 条件、JDK 要求以及示例功能和移除方法。请区分源代码与分发 JAR,切勿包含游戏本体或其他作者的模组文件。初始版本请在确认日志能在实际的常规启动器中正常输出后,再附上诸如 1.0.0 这样的版本号进行发布。

原始文档与验证标准

本入门攻略由 TroubleMaker 运营团队于 2026 年 10 月 7 日核对创作者与官方工具文档后编写。代码与图示均为用于说明的自研示例,并非在此服务器上验证该游戏实际游玩的结果。请使用正文中明确的版本在单独的测试存档中进行验证后再行分发。各个工具的最新版本与依赖项请对照下方原始来源:

Fabric 개발 환경

Fabric 프로젝트 생성

Fabric 모드 빌드

Fabric 공식 생성기

Gemini 自動翻譯 · 保留原文與來源地區。

原文語言 · ko

마인크래프트 모드 만드는 법: Fabric 프로젝트·Java 코드·JAR 빌드까지

이 공략은 Minecraft Java Edition 26.2와 Fabric을 기준으로 첫 실행 때 로그를 출력하는 모드를 만듭니다. 모드 파일이 로더에 인식되고 내가 쓴 Java 코드가 실행되는 지점까지 따라가는 입문 예제입니다. Bedrock 애드온, Forge·NeoForge 프로젝트와 구조가 다르므로 한 프로젝트 안에 섞지 마세요.

[1. 개발 환경 준비]

Fabric의 현재 26.2 문서는 JDK 25를 안내합니다. Java 실행 환경만 설치하는 대신 개발용 JDK를 설치하고 IntelliJ IDEA 또는 VS Code를 준비합니다. 터미널에서 아래 명령으로 실제 사용 중인 Java를 확인하세요. IDE의 Project SDK와 Gradle JVM도 같은 버전을 가리켜야 합니다. 1.21.1 등 구버전으로 만들려면 문서 상단 버전 선택과 생성기 버전을 함께 바꾸고 그 버전의 JDK 요구 사항을 따릅니다.

```sh
java -version
javac -version
```

[image:conditions]

[2. Fabric 생성기에서 프로젝트 만들기]

1. Fabric 공식 Template Mod Generator를 엽니다.
2. Mod Name은 TroubleMaker Hello, Mod ID는 tmhello, Package Name은 com.ascgame.tmhello로 지정합니다.
3. Minecraft 버전을 26.2로 맞춥니다. Kotlin·별도 데이터 생성 등 고급 옵션은 첫 예제에서 추가하지 않아도 됩니다.
4. ZIP을 내려받아 C:/Projects/TMHello 같은 단순한 경로에 압축을 풉니다. 프로젝트 폴더는 실제 운영체제에 맞춰 정합니다.
5. IDE에서 build.gradle 또는 프로젝트 루트를 열고 Gradle 가져오기가 끝날 때까지 기다립니다. 생성기가 정한 Loader·Loom·API 버전을 그대로 보관합니다.

[3. 파일이 하는 일을 이해하기]

src/main/java는 공통 Java 코드, src/main/resources/fabric.mod.json은 모드 ID·진입 클래스·의존성 선언, gradle.properties는 버전과 프로젝트 설정입니다. 생성기에 따라 클라이언트 코드가 src/client/java로 나뉠 수 있습니다. 이 예제는 공통 초기화 코드만 바꿉니다. 임의로 모든 설정 파일을 지우거나 인터넷의 다른 버전 설정을 덮어쓰지 마세요.

[4. 내 초기화 클래스를 작성하기]

생성된 공통 ModInitializer 구현 파일을 찾고 아래 구조로 수정합니다. 파일명을 TMHello.java로 바꾸었다면 package 폴더와 클래스 이름도 일치시킵니다. SLF4J 로그를 사용하므로 다른 게임 버전에서 바뀌기 쉬운 아이템 등록 API 없이 초기화 여부를 확인할 수 있습니다.

```java
package com.ascgame.tmhello;

import net.fabricmc.api.ModInitializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class TMHello implements ModInitializer {
public static final String MOD_ID = "tmhello";
private static final Logger LOG = LoggerFactory.getLogger(MOD_ID);

@Override
public void onInitialize() {
LOG.info("TroubleMaker: my first Fabric mod is ready.");
}
}
```

fabric.mod.json의 다른 내용을 유지한 채 entrypoints.main이 위 클래스의 전체 이름을 가리키는지 확인합니다. 아래는 전체 파일이 아니라 확인할 부분입니다. 기존 mixins나 client 설정까지 통째로 대체하지 마세요.

```json
{
"entrypoints": {
"main": ["com.ascgame.tmhello.TMHello"]
}
}
```

[image:request]

[5. 개발 실행과 최종 파일 빌드]

1. 프로젝트 루트에서 Windows는 gradlew.bat runClient, macOS/Linux는 ./gradlew runClient를 실행합니다.
2. 개발 클라이언트 콘솔 또는 run/logs/latest.log에서 TroubleMaker 문구를 검색합니다. 월드에 들어가기 전 초기화 때 한 번 출력되는 예제입니다.
3. 게임을 종료하고 Windows는 gradlew.bat build, macOS/Linux는 ./gradlew build로 배포 파일을 만듭니다.
4. build/libs에서 일반 배포 JAR을 확인합니다. 이름에 sources 또는 dev가 붙은 개발용 파일을 일반 배포본으로 사용하지 않습니다.
5. 같은 Minecraft 버전의 별도 Fabric 인스턴스 mods 폴더에 JAR을 넣습니다. 생성된 의존성에 Fabric API가 있으면 같은 버전에 맞춰 설치합니다.
6. 실제 런처로 실행하고 인스턴스의 logs/latest.log에 같은 문구가 찍히는지 확인합니다.

[6. 자주 생기는 오류와 복구]

Unsupported class file version은 Java 버전, 진입 클래스 로딩 오류는 package·클래스명·entrypoints 불일치부터 확인합니다. mods 폴더에 넣었는데 조용하면 다른 런처 인스턴스에 넣었는지도 확인하세요. 이 예제는 세이브 데이터를 추가하지 않으므로 게임을 종료하고 JAR을 제거해 비교할 수 있습니다. 이후 아이템이나 블록을 추가할 때는 대상 버전의 Fabric First Item 문서를 이어서 읽고, 파일 경로와 등록 API를 그 버전에 맞춥니다.

[image:contact]

[7. 공유할 때 함께 적을 정보]

모드 ID, 지원 Minecraft 버전, Loader·Fabric API 조건, JDK 요구 사항, 예제 기능과 제거 방법을 README에 적습니다. 코드 원본과 배포 JAR을 구분하고 게임 본체나 다른 제작자의 모드 파일을 포함하지 않습니다. 최초 버전은 로그가 실제 일반 런처에서 출력되는지 확인한 뒤 1.0.0처럼 버전을 붙여 배포하세요.

[원본 문서와 확인 기준]

2026년 10월 7일 제작자·공식 도구 문서를 확인해 TroubleMaker 운영팀이 작성한 입문 공략입니다. 코드와 도식은 설명을 위한 자체 예제이며 이 서버에서 해당 게임의 실제 플레이를 검증한 결과는 아닙니다. 본문에 명시한 버전으로 별도 테스트 세이브에서 확인하고 배포하세요. 도구별 최신 버전·의존성은 아래 원본에서 대조합니다.

Fabric 개발 환경

Fabric 프로젝트 생성

Fabric 모드 빌드

Fabric 공식 생성기

以朋友的語言分享

留言 1

제시해주신 가이드에서 언급된 JDK 25와 같은 특정 Java 버전 요구 사항이, 프로젝트 생성 시 선택하는 마인크래프트 버전마다 다르게 적용되는 것인가요? 아니면 Fabric 로더 자체의 업데이트 주기에 따라 결정되는 것인지 궁금합니다.

將使用會員暱稱留言。 登入或註冊

COMMUNITY NOTICE

無法發佈

內容含有禁止使用的詞語。

請修改內容後再試一次。

登入

登入

使用 Google 繼續
或使用電子郵件

客服中心

請告訴我們遇到的問題或疑問。無須登入即可詢問。

我們儲存您的姓名、電子郵件、內容及登入時的帳戶資訊以處理詢問,僅供管理員查閱。提交180天後列入自動刪除範圍。請勿提供密碼、卡號或身分證件等敏感資訊。 隱私說明

選用的分析 Cookie 用於了解網站使用情況。拒絕不影響登入或瀏覽。廣告同意由 Google 另行管理。

隱私權政策