diff options
Diffstat (limited to 'packages/docs/content/zh/features/java.mdx')
| -rw-r--r-- | packages/docs/content/zh/features/java.mdx | 394 |
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. 使用前彻底测试 |