diff options
| author | 2026-02-28 09:03:19 +0800 | |
|---|---|---|
| committer | 2026-02-28 09:03:19 +0800 | |
| commit | cc53b1cf260e1c67939e50608ef18764da616d55 (patch) | |
| tree | 119109c62331d4d26612e2df7726cee82d1871f5 /packages/docs/content/en/features/java.mdx | |
| parent | ee37d044e473217daadd9ce26c7e2e2ad39a0490 (diff) | |
| parent | 81a62402ef6f8900ff092366121a9b7a4263ba52 (diff) | |
| download | DropOut-cc53b1cf260e1c67939e50608ef18764da616d55.tar.gz DropOut-cc53b1cf260e1c67939e50608ef18764da616d55.zip | |
Merge remote-tracking branch 'upstream/main'
Diffstat (limited to 'packages/docs/content/en/features/java.mdx')
| -rw-r--r-- | packages/docs/content/en/features/java.mdx | 394 |
1 files changed, 0 insertions, 394 deletions
diff --git a/packages/docs/content/en/features/java.mdx b/packages/docs/content/en/features/java.mdx deleted file mode 100644 index 21b95a9..0000000 --- a/packages/docs/content/en/features/java.mdx +++ /dev/null @@ -1,394 +0,0 @@ ---- -title: Java Management -description: Automatic Java detection, download, and installation ---- - -# Java Management - -DropOut provides comprehensive Java management, automatically detecting installed versions and downloading new ones as needed. - -## Auto-detection - -### System Scan - -DropOut scans multiple locations for Java installations: - -**Linux:** -- `/usr/lib/jvm/` -- `/usr/java/` -- `$JAVA_HOME` -- `PATH` environment variable - -**macOS:** -- `/Library/Java/JavaVirtualMachines/` -- `/System/Library/Java/JavaVirtualMachines/` -- `$JAVA_HOME` -- `PATH` environment variable - -**Windows:** -- `C:\Program Files\Java\` -- `C:\Program Files (x86)\Java\` -- `%JAVA_HOME%` -- `PATH` environment variable -- Windows Registry - -### Version Detection - -For each Java installation found, DropOut: -1. Runs `java -version` to get version info -2. Parses major version (8, 11, 17, 21, etc.) -3. Detects architecture (x64, ARM64) -4. Identifies vendor (Oracle, Adoptium, etc.) - -### Results - -All detected Java installations appear in Settings → Java: -- Version number -- Installation path -- Architecture -- Current selection status - -## Java Download - -### Adoptium Integration - -DropOut integrates with the Eclipse Adoptium API to download high-quality, free JDK/JRE builds. - -**Supported Versions:** -- Java 8 (LTS) -- Java 11 (LTS) -- Java 17 (LTS) -- Java 21 (LTS) -- Java 23+ (Latest) - -**Features:** -- Automatic platform detection -- Architecture-specific builds -- JDK or JRE selection -- Checksum verification - -### Download Process - -1. Navigate to Settings → Java -2. Click "Download Java" -3. Select version (e.g., Java 17) -4. Choose JDK or JRE -5. Click Download -6. Wait for download and extraction - -**Progress Tracking:** -- Real-time download speed -- ETA calculation -- Extraction progress -- Installation confirmation - -### Catalog Management - -The Java catalog is cached for 24 hours to improve performance: - -```rust -// Catalog structure -{ - "versions": [ - { - "version": "17.0.9+9", - "major": 17, - "url": "https://api.adoptium.net/...", - "sha256": "...", - "size": 123456789 - } - ], - "last_updated": 1234567890 -} -``` - -**Refresh:** -- Automatic after 24 hours -- Manual refresh in settings -- Forced refresh on download failure - -## Installation - -### Download Directory - -Downloaded Java runtimes are installed to: - -``` -~/.local/share/com.dropout.launcher/java/ (Linux) -~/Library/Application Support/com.dropout.launcher/java/ (macOS) -%APPDATA%/com.dropout.launcher/java/ (Windows) -``` - -### Directory Structure - -``` -java/ -├── jdk-17.0.9+9/ -│ ├── bin/ -│ │ └── java (or java.exe) -│ └── lib/ -├── jdk-21.0.1+12/ -│ ├── bin/ -│ └── lib/ -└── download_queue.json -``` - -### Extraction - -1. Download to `.part` file -2. Verify checksum -3. Extract archive: - - `.tar.gz` on Linux/macOS - - `.zip` on Windows -4. Move to `java/<version>/` directory -5. Set executable permissions (Unix) - -## Configuration - -### Memory Allocation - -Configure JVM memory in Settings: - -**Minimum Memory:** -- Default: 1024 MB -- Recommended: 2048 MB for vanilla -- Recommended: 4096+ MB for modded - -**Maximum Memory:** -- Default: 4096 MB -- Adjust based on your system RAM -- Leave 4GB for OS and other apps - -**Format:** -```bash --Xms1024M -Xmx4096M -``` - -### Custom JVM Arguments - -Add custom JVM arguments for advanced configuration: - -**Common Arguments:** -```bash -# Garbage collection --XX:+UseG1GC --XX:+UnlockExperimentalVMOptions - -# Performance --XX:G1NewSizePercent=20 --XX:G1ReservePercent=20 --XX:MaxGCPauseMillis=50 - -# Memory --XX:G1HeapRegionSize=32M -``` - -### Java Path Selection - -**Auto-select:** -- DropOut recommends the best Java version for each Minecraft version -- Java 8 for Minecraft 1.12.2 and older -- Java 17 for Minecraft 1.18-1.20.4 -- Java 21 for Minecraft 1.20.5+ - -**Manual selection:** -1. Go to Settings → Java -2. Choose from detected installations -3. Or specify custom path - -## Version Recommendations - -### Minecraft Version → Java Version - -| Minecraft Version | Recommended Java | Minimum Java | -|-------------------|------------------|--------------| -| 1.7.10 and older | Java 8 | Java 8 | -| 1.8 - 1.12.2 | Java 8 | Java 8 | -| 1.13 - 1.16.5 | Java 8 or 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 | - -### Modded Minecraft - -**Fabric:** -- Usually matches vanilla requirements -- Some mods may require newer Java - -**Forge:** -- May require specific Java versions -- Check mod loader documentation -- Often requires exact version match - -## Troubleshooting - -### Java Not Detected - -**Issue:** Installed Java not showing up - -**Solutions:** -1. Verify Java is in standard location -2. Check `JAVA_HOME` environment variable -3. Add Java `bin` directory to `PATH` -4. Restart DropOut -5. Manual path selection - -### Download Fails - -**Issue:** Java download doesn't complete - -**Solutions:** -1. Check internet connection -2. Verify disk space -3. Try different version -4. Clear download queue -5. Manual download from Adoptium - -### Wrong Java Version - -**Issue:** Game crashes due to Java version - -**Solutions:** -1. Check Minecraft version requirements -2. Download correct Java version -3. Select appropriate Java in settings -4. Verify Java path is correct - -### OutOfMemoryError - -**Issue:** Game crashes with memory error - -**Solutions:** -1. Increase maximum memory allocation -2. Close other applications -3. Upgrade system RAM -4. Use 64-bit Java -5. Optimize JVM arguments - -### Performance Issues - -**Issue:** Low FPS or stuttering - -**Solutions:** -1. Adjust memory allocation (not too high!) -2. Enable G1GC garbage collector -3. Add performance JVM arguments -4. Use newer Java version if compatible -5. Allocate 4-8GB for modpacks - -## API Reference - -### Tauri Commands - -**Detect Java Installations:** -```typescript -const javas = await invoke('detect_java_installations'); -// Returns: Array<{ path: string, version: string, major: number }> -``` - -**Get Java Catalog:** -```typescript -const catalog = await invoke('get_java_catalog'); -// Returns: { versions: Array<JavaVersion>, last_updated: number } -``` - -**Download Java:** -```typescript -await invoke('download_java', { - version: '17.0.9+9', - variant: 'jdk' // or 'jre' -}); -``` - -**Cancel Java Download:** -```typescript -await invoke('cancel_java_download'); -``` - -**Set Java Path:** -```typescript -await invoke('set_java_path', { path: '/path/to/java' }); -``` - -### Events - -**Download Progress:** -```typescript -listen('java-download-progress', (event) => { - const { percent, speed, eta } = event.payload; -}); -``` - -**Download Complete:** -```typescript -listen('java-download-complete', (event) => { - const { path, version } = event.payload; -}); -``` - -## Best Practices - -### For Players - -1. **Use Adoptium builds** - Free, high-quality, maintained -2. **Match Java to Minecraft** - Check version requirements -3. **Don't over-allocate memory** - Leave RAM for OS -4. **Keep Java updated** - Security and performance -5. **Use 64-bit Java** - Required for large memory - -### For Developers - -1. **Test multiple Java versions** - Ensure compatibility -2. **Document Java requirements** - Help users -3. **Handle missing Java** - Graceful fallbacks -4. **Validate Java path** - Before launching -5. **Provide clear errors** - When Java is wrong - -## Advanced Topics - -### Custom Java Installation - -To use a custom Java installation: - -1. Install Java manually -2. Note the installation path -3. In DropOut Settings → Java -4. Click "Custom Path" -5. Browse to Java executable -6. Verify version is correct - -### Java for Servers - -When running a Minecraft server: - -```bash -# Recommended server JVM arguments --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 is supported for advanced users: - -1. Download GraalVM from graalvm.org -2. Install manually -3. Add to DropOut as custom Java -4. May improve performance -5. Test thoroughly before use |