This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
FreshCoffee/src/main/java/com/thebrokenrail/freshcoffee/util/JavaVersionUtil.java

53 lines
1.5 KiB
Java

package com.thebrokenrail.freshcoffee.util;
import com.thebrokenrail.freshcoffee.util.limit.LimitUtil;
public final class JavaVersionUtil {
private static boolean isNewer(int[] one, int[] two) {
int length = Math.min(one.length, two.length);
for (int i = 0; i < length; i++) {
if (one[i] > two[i]) {
return true;
}
}
return false;
}
private static int[] toIntArray(String versionStr) {
String[] versionArr = versionStr.split("[.+]");
boolean invalid = false;
int[] version = new int[versionArr.length];
for (int i = 0; i < versionArr.length; i++) {
try {
version[i] = Integer.parseInt(versionArr[i]);
} catch (NumberFormatException e) {
invalid = true;
break;
}
}
return invalid ? null : version;
}
public static String getNewest(String[] list) {
String newest = null;
for (String jdk : list) {
int[] version = toIntArray(jdk);
if (version != null) {
boolean newer = true;
if (version[0] < LimitUtil.getMinimumJavaVersion().getValue() || version[0] > LimitUtil.getMaximumJavaVersion().getValue() || (newest != null && !isNewer(toIntArray(newest), version))) {
newer = false;
}
if (newer) {
newest = jdk;
}
}
}
return newest;
}
}