summarylogtreecommitdiffstats
path: root/PlayOnLinux.sh
blob: 883831afae8942202f1a398e2d82cfc9754af8fd (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
#!/bin/bash

cat<<-EOF

-----------------------------------------
Unofficial PlayOnLinux5 Launcher
-----------------------------------------

EOF

POL_HOME=/opt/playonlinux5
CLASSPATH=${CLASSPATH}:$POL_HOME/lib/*

# Test for active java
_openjdk=$(ls -d /usr/lib/jvm/java-{11,12,13,14}-openjdk* 2>/dev/null | head -1)
_oraclejdk=$(ls -d /usr/lib/jvm/java-{11,12,13,14}-jdk* 2>/dev/null | head -1)
_opendjdk_jetbrains=$(ls -d /usr/lib/jvm/java-{11,12,13,14}-openjdk-jetbrains* 2>/dev/null | head -1)

# Allow either openjdk java or Oracle java to be used

if (( $(archlinux-java get | cut -d "-" -f2) < 8 )); then

	echo "WARNING: A JVM of version 11 or higher was not found"
	java_default=$(archlinux-java get)
	echo -e "\t==> Picked up default Java of: $java_default"
	echo -e "\t==> Assessing if we have java version 8 or higher..."

	if [[ "$_oraclejdk" ]]; then
		echo -e "\t==> Picked up compatible JVM: $_oraclejdk"
		JAVA_HOME=$_oraclejdk

	elif [[ "$_openjdk_jetbrains" ]]; then
		echo -e "\t==> Picked up compatible JVM: $opendjdk_jetbrains"
		JAVA_HOME=$_openjdk_jetbrains

	elif [[ "$_openjdk" ]]; then
		echo -e "\t==> Picked up compatible JVM: $_openjdk"
		JAVA_HOME=$_opendjdk

	else
		echo -e "\t==> Failed to find a compatible runtime JVM!"

	fi

else

	echo "Running compatible JVM already (default set): $(archlinux-java get)"
	echo "Using: $(archlinux-java get)"
	export JAVA_HOME="/usr/lib/jvm/default"

fi

# JavaFX
# Test for JavaFX (required)

JAVA_FX=$(find $JAVA_HOME/ -name "javafx.properties")
if [[ -n "$JAVA_FX" ]]; then
	JAVA_FX_BOOLEAN="True"
else
	JAVA_FX_BOOLEAN="False"
fi

echo "JavaFX Capabale? $JAVA_FX_BOOLEAN"

if [[ "$JAVA_FX_BOOLEAN" = "False" ]]; then
	echo "Forcing proper Java (if available)"

	if [[ "${_openjdk}" ]]; then
		export JAVA_HOME="${_openjdk[0]}"
		echo "Switching to OpenJDK"

	elif [[ "${_oraclejdk}" ]]; then
		export JAVA_HOME=$(ls /usr/lib/jvm/java-{11,12,13,14}-jdk*/bin/javac 2>/dev/null | cut -d "/" -f-5 | head -1)
		msg2 "Switching to Oracle JDK"
	else
		msg2 "ERROR: Could not find a proper java build environment. Exiting"
		exit 1
	fi

fi

echo "JAVA_HOME: $JAVA_HOME"

# Start PlayOnLinux
echo "Launching PlayOnLinux5"
$JAVA_HOME/bin/java -classpath "$CLASSPATH" org.phoenicis.javafx.JavaFXApplication "$@"