-
Notifications
You must be signed in to change notification settings - Fork 0
/
version.java
28 lines (22 loc) · 883 Bytes
/
version.java
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
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.concurrent.TimeUnit;
class version {
public static void main(String... args) throws Exception {
System.out.println("Java " + Runtime.version());
var errors = Path.of("errors-version.txt");
var output = Path.of("output-version.txt");
var builder = new ProcessBuilder();
builder.command().add("java");
builder.command().add("--version");
builder.redirectError(errors.toFile());
builder.redirectOutput(output.toFile());
var process = builder.start();
var timely = process.waitFor(5, TimeUnit.SECONDS);
System.err.println("=== ERRORS ===");
Files.readAllLines(errors).forEach(System.err::println);
System.err.println("=== OUTPUT ===");
Files.readAllLines(output).forEach(System.out::println);
System.exit(timely ? process.exitValue() : -1);
}
}