aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/packages/docs/content/zh/features/java.mdx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/docs/content/zh/features/java.mdx')
-rw-r--r--packages/docs/content/zh/features/java.mdx394
1 files changed, 394 insertions, 0 deletions
diff --git a/packages/docs/content/zh/features/java.mdx b/packages/docs/content/zh/features/java.mdx
new file mode 100644
index 0000000..bdc3c15
--- /dev/null
+++ b/packages/docs/content/zh/features/java.mdx
@@ -0,0 +1,394 @@
+---
+title: Java 管理
+description: 自动 Java 检测、下载和安装
+---
+
+# Java 管理
+
+DropOut 提供全面的 Java 管理,自动检测已安装的版本并根据需要下载新版本。
+
+## 自动检测
+
+### 系统扫描
+
+DropOut 扫描多个位置查找 Java 安装:
+
+**Linux:**
+- `/usr/lib/jvm/`
+- `/usr/java/`
+- `$JAVA_HOME`
+- `PATH` 环境变量
+
+**macOS:**
+- `/Library/Java/JavaVirtualMachines/`
+- `/System/Library/Java/JavaVirtualMachines/`
+- `$JAVA_HOME`
+- `PATH` 环境变量
+
+**Windows:**
+- `C:\Program Files\Java\`
+- `C:\Program Files (x86)\Java\`
+- `%JAVA_HOME%`
+- `PATH` 环境变量
+- Windows 注册表
+
+### 版本检测
+
+对于找到的每个 Java 安装,DropOut 会:
+1. 运行 `java -version` 获取版本信息
+2. 解析主要版本(8、11、17、21 等)
+3. 检测架构(x64、ARM64)
+4. 识别供应商(Oracle、Adoptium 等)
+
+### 结果
+
+所有检测到的 Java 安装都显示在设置 → Java 中:
+- 版本号
+- 安装路径
+- 架构
+- 当前选择状态
+
+## Java 下载
+
+### Adoptium 集成
+
+DropOut 集成了 Eclipse Adoptium API 以下载高质量的免费 JDK/JRE 构建版本。
+
+**支持的版本:**
+- Java 8(LTS)
+- Java 11(LTS)
+- Java 17(LTS)
+- Java 21(LTS)
+- Java 23+(最新版)
+
+**功能:**
+- 自动平台检测
+- 特定架构的构建版本
+- JDK 或 JRE 选择
+- 校验和验证
+
+### 下载过程
+
+1. 导航到设置 → Java
+2. 点击"下载 Java"
+3. 选择版本(例如 Java 17)
+4. 选择 JDK 或 JRE
+5. 点击下载
+6. 等待下载和解压
+
+**进度跟踪:**
+- 实时下载速度
+- ETA 计算
+- 解压进度
+- 安装确认
+
+### 目录管理
+
+Java 目录缓存 24 小时以提高性能:
+
+```rust
+// 目录结构
+{
+ "versions": [
+ {
+ "version": "17.0.9+9",
+ "major": 17,
+ "url": "https://api.adoptium.net/...",
+ "sha256": "...",
+ "size": 123456789
+ }
+ ],
+ "last_updated": 1234567890
+}
+```
+
+**刷新:**
+- 24 小时后自动刷新
+- 设置中手动刷新
+- 下载失败时强制刷新
+
+## 安装
+
+### 下载目录
+
+下载的 Java 运行时安装到:
+
+```
+~/.local/share/com.dropout.launcher/java/ (Linux)
+~/Library/Application Support/com.dropout.launcher/java/ (macOS)
+%APPDATA%/com.dropout.launcher/java/ (Windows)
+```
+
+### 目录结构
+
+```
+java/
+├── jdk-17.0.9+9/
+│ ├── bin/
+│ │ └── java (或 java.exe)
+│ └── lib/
+├── jdk-21.0.1+12/
+│ ├── bin/
+│ └── lib/
+└── download_queue.json
+```
+
+### 解压
+
+1. 下载到 `.part` 文件
+2. 验证校验和
+3. 解压存档:
+ - Linux/macOS 上的 `.tar.gz`
+ - Windows 上的 `.zip`
+4. 移动到 `java/<version>/` 目录
+5. 设置可执行权限(Unix)
+
+## 配置
+
+### 内存分配
+
+在设置中配置 JVM 内存:
+
+**最小内存:**
+- 默认:1024 MB
+- 推荐:原版 2048 MB
+- 推荐:模组 4096+ MB
+
+**最大内存:**
+- 默认:4096 MB
+- 根据系统 RAM 调整
+- 为操作系统和其他应用留出 4GB
+
+**格式:**
+```bash
+-Xms1024M -Xmx4096M
+```
+
+### 自定义 JVM 参数
+
+为高级配置添加自定义 JVM 参数:
+
+**常用参数:**
+```bash
+# 垃圾回收
+-XX:+UseG1GC
+-XX:+UnlockExperimentalVMOptions
+
+# 性能
+-XX:G1NewSizePercent=20
+-XX:G1ReservePercent=20
+-XX:MaxGCPauseMillis=50
+
+# 内存
+-XX:G1HeapRegionSize=32M
+```
+
+### Java 路径选择
+
+**自动选择:**
+- DropOut 为每个 Minecraft 版本推荐最佳 Java 版本
+- Java 8 用于 Minecraft 1.12.2 及更早版本
+- Java 17 用于 Minecraft 1.18-1.20.4
+- Java 21 用于 Minecraft 1.20.5+
+
+**手动选择:**
+1. 前往设置 → Java
+2. 从检测到的安装中选择
+3. 或指定自定义路径
+
+## 版本推荐
+
+### Minecraft 版本 → Java 版本
+
+| Minecraft 版本 | 推荐 Java | 最低 Java |
+|-------------------|------------------|--------------|
+| 1.7.10 及更早 | Java 8 | Java 8 |
+| 1.8 - 1.12.2 | Java 8 | Java 8 |
+| 1.13 - 1.16.5 | Java 8 或 11 | Java 8 |
+| 1.17 - 1.17.1 | Java 16 | Java 16 |
+| 1.18 - 1.20.4 | Java 17 | Java 17 |
+| 1.20.5+ | Java 21 | Java 21 |
+
+### 模组 Minecraft
+
+**Fabric:**
+- 通常与原版要求匹配
+- 一些模组可能需要更新的 Java
+
+**Forge:**
+- 可能需要特定的 Java 版本
+- 检查模组加载器文档
+- 通常需要完全匹配版本
+
+## 故障排除
+
+### 未检测到 Java
+
+**问题:** 已安装的 Java 未显示
+
+**解决方案:**
+1. 验证 Java 在标准位置
+2. 检查 `JAVA_HOME` 环境变量
+3. 将 Java `bin` 目录添加到 `PATH`
+4. 重启 DropOut
+5. 手动选择路径
+
+### 下载失败
+
+**问题:** Java 下载未完成
+
+**解决方案:**
+1. 检查互联网连接
+2. 验证磁盘空间
+3. 尝试不同版本
+4. 清除下载队列
+5. 从 Adoptium 手动下载
+
+### Java 版本错误
+
+**问题:** 由于 Java 版本导致游戏崩溃
+
+**解决方案:**
+1. 检查 Minecraft 版本要求
+2. 下载正确的 Java 版本
+3. 在设置中选择适当的 Java
+4. 验证 Java 路径正确
+
+### 内存不足错误
+
+**问题:** 游戏因内存错误崩溃
+
+**解决方案:**
+1. 增加最大内存分配
+2. 关闭其他应用程序
+3. 升级系统 RAM
+4. 使用 64 位 Java
+5. 优化 JVM 参数
+
+### 性能问题
+
+**问题:** 低 FPS 或卡顿
+
+**解决方案:**
+1. 调整内存分配(不要太高!)
+2. 启用 G1GC 垃圾收集器
+3. 添加性能 JVM 参数
+4. 如兼容使用更新的 Java 版本
+5. 为整合包分配 4-8GB
+
+## API 参考
+
+### Tauri 命令
+
+**检测 Java 安装:**
+```typescript
+const javas = await invoke('detect_java_installations');
+// 返回: Array<{ path: string, version: string, major: number }>
+```
+
+**获取 Java 目录:**
+```typescript
+const catalog = await invoke('get_java_catalog');
+// 返回: { versions: Array<JavaVersion>, last_updated: number }
+```
+
+**下载 Java:**
+```typescript
+await invoke('download_java', {
+ version: '17.0.9+9',
+ variant: 'jdk' // 或 'jre'
+});
+```
+
+**取消 Java 下载:**
+```typescript
+await invoke('cancel_java_download');
+```
+
+**设置 Java 路径:**
+```typescript
+await invoke('set_java_path', { path: '/path/to/java' });
+```
+
+### 事件
+
+**下载进度:**
+```typescript
+listen('java-download-progress', (event) => {
+ const { percent, speed, eta } = event.payload;
+});
+```
+
+**下载完成:**
+```typescript
+listen('java-download-complete', (event) => {
+ const { path, version } = event.payload;
+});
+```
+
+## 最佳实践
+
+### 对于玩家
+
+1. **使用 Adoptium 构建版本** - 免费、高质量、维护良好
+2. **Java 与 Minecraft 版本匹配** - 检查版本要求
+3. **不要过度分配内存** - 为操作系统留出 RAM
+4. **保持 Java 更新** - 安全性和性能
+5. **使用 64 位 Java** - 大内存所需
+
+### 对于开发者
+
+1. **测试多个 Java 版本** - 确保兼容性
+2. **记录 Java 要求** - 帮助用户
+3. **处理缺少的 Java** - 优雅的后备方案
+4. **启动前验证 Java 路径**
+5. **提供清晰的错误** - 当 Java 错误时
+
+## 高级主题
+
+### 自定义 Java 安装
+
+使用自定义 Java 安装:
+
+1. 手动安装 Java
+2. 记录安装路径
+3. 在 DropOut 设置 → Java 中
+4. 点击"自定义路径"
+5. 浏览到 Java 可执行文件
+6. 验证版本正确
+
+### 服务器用 Java
+
+运行 Minecraft 服务器时:
+
+```bash
+# 推荐的服务器 JVM 参数
+-Xms4G -Xmx4G \
+-XX:+UseG1GC \
+-XX:+ParallelRefProcEnabled \
+-XX:MaxGCPauseMillis=200 \
+-XX:+UnlockExperimentalVMOptions \
+-XX:+DisableExplicitGC \
+-XX:G1NewSizePercent=30 \
+-XX:G1MaxNewSizePercent=40 \
+-XX:G1HeapRegionSize=8M \
+-XX:G1ReservePercent=20 \
+-XX:G1HeapWastePercent=5 \
+-XX:G1MixedGCCountTarget=4 \
+-XX:InitiatingHeapOccupancyPercent=15 \
+-XX:G1MixedGCLiveThresholdPercent=90 \
+-XX:G1RSetUpdatingPauseTimePercent=5 \
+-XX:SurvivorRatio=32 \
+-XX:+PerfDisableSharedMem \
+-XX:MaxTenuringThreshold=1
+```
+
+### GraalVM
+
+GraalVM 支持高级用户:
+
+1. 从 graalvm.org 下载 GraalVM
+2. 手动安装
+3. 作为自定义 Java 添加到 DropOut
+4. 可能提高性能
+5. 使用前彻底测试