summaryrefslogtreecommitdiff
path: root/archived/projt-launcher/docs/handbook/javacheck.md
blob: bed3279bc31c1cc851b957f174f5e40ca4009e20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# JavaCheck `javacheck/`

> **Location**: `javacheck/`  
> **Language**: Java  
> **Purpose**: Java runtime property detection
> **Latest Version**: 0.0.5-1

---

## Overview

JavaCheck is a minimal Java program that prints system properties. It's used by ProjT Launcher to detect and validate Java installations.

---

## How It Works

```
┌─────────────────┐      ┌─────────────┐     ┌──────────────┐
│  ProjT Launcher │────▶│  JavaCheck  │────▶│   stdout     │
│     (C++)       │      │   (Java)    │     │  properties  │
└─────────────────┘      └─────────────┘     └──────────────┘
```

### Execution

```bash
java -jar javacheck.jar java.version java.home os.arch
```

### Output

```
java.version=17.0.9
java.home=/usr/lib/jvm/java-17-openjdk
os.arch=amd64
```

---

## Properties Checked

| Property | Description |
|----------|-------------|
| `java.version` | Java version string |
| `java.home` | JRE installation path |
| `os.arch` | System architecture |
| `java.vendor` | JVM vendor |
| `java.vm.name` | JVM implementation |

---

## Exit Codes

| Code | Meaning |
|------|---------|
| 0 | All properties found |
| 1 | One or more properties null |

---

## Usage in Launcher

ProjT Launcher uses JavaCheck to:

1. **Validate Java installations** — Ensure Java is working
2. **Detect version** — Choose correct Java for Minecraft version
3. **Get architecture** — Match 32/64-bit requirements
4. **Auto-detect Java** — Find installed JREs/JDKs

---

## Building

```bash
cd javacheck
javac JavaCheck.java
jar cfe javacheck.jar JavaCheck JavaCheck.class
```

---

## Related Documentation

- [LauncherJava](./launcherjava.md) — Launch component
- [Program Info](./program_info.md) — Application config