Skip to content

Commit 6f8a051

Browse files
committed
Use JAVA_HOME option if set for running the game
1 parent 2bed5be commit 6f8a051

3 files changed

Lines changed: 28 additions & 17 deletions

File tree

gui/src/main/java/org/mcphackers/mcp/main/MainGUI.java

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package org.mcphackers.mcp.main;
22

3-
import java.awt.BorderLayout;
4-
import java.awt.Font;
5-
import java.awt.Frame;
3+
import java.awt.*;
64
import java.awt.event.ActionListener;
75
import java.io.File;
86
import java.io.IOException;
@@ -15,19 +13,7 @@
1513
import java.nio.file.Paths;
1614
import java.util.List;
1715

18-
import javax.swing.BoxLayout;
19-
import javax.swing.JFileChooser;
20-
import javax.swing.JFrame;
21-
import javax.swing.JLabel;
22-
import javax.swing.JOptionPane;
23-
import javax.swing.JPanel;
24-
import javax.swing.JScrollPane;
25-
import javax.swing.JTextArea;
26-
import javax.swing.JTextPane;
27-
import javax.swing.SwingConstants;
28-
import javax.swing.SwingUtilities;
29-
import javax.swing.UIManager;
30-
import javax.swing.UnsupportedLookAndFeelException;
16+
import javax.swing.*;
3117
import javax.swing.border.EmptyBorder;
3218
import javax.tools.JavaCompiler;
3319
import javax.tools.ToolProvider;
@@ -303,6 +289,20 @@ public void inputOptionsValue(TaskParameter param) {
303289
if (param.type == String[].class) {
304290
s = MCP.TRANSLATOR.translateKey("options.enterValues") + "\n" + MCP.TRANSLATOR.translateKey("options.enterValues.info");
305291
}
292+
if (param.equals(TaskParameter.JAVA_HOME)) {
293+
JFileChooser chooser = new JFileChooser();
294+
chooser.setDialogTitle("Select JAVA_HOME Directory");
295+
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
296+
chooser.setAcceptAllFileFilterUsed(false);
297+
298+
int result = chooser.showOpenDialog(null);
299+
300+
if (result == JFileChooser.APPROVE_OPTION) {
301+
s = chooser.getSelectedFile().getAbsolutePath() + "/bin/java";
302+
} else {
303+
System.out.println("No folder selected.");
304+
}
305+
}
306306
String value = (String) JOptionPane.showInputDialog(frame, s, param.getDesc(), JOptionPane.PLAIN_MESSAGE, null, null, Util.convertToEscapedString(String.valueOf(options.getParameter(param))));
307307
safeSetParameter(param, value);
308308
options.save();

src/main/java/org/mcphackers/mcp/tasks/TaskRun.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ protected Stage[] setStages() {
5555
Path natives = MCPPaths.get(mcp, NATIVES).toAbsolutePath();
5656

5757
List<String> args = new ArrayList<>();
58-
args.add(Util.getJava());
58+
args.add(Util.getJava(this.mcp));
5959
Collections.addAll(args, runArgs);
6060
args.add("-Djava.library.path=" + natives);
6161
args.add("-cp");

src/main/java/org/mcphackers/mcp/tools/Util.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package org.mcphackers.mcp.tools;
22

3+
import org.mcphackers.mcp.MCP;
4+
import org.mcphackers.mcp.tasks.mode.TaskParameter;
5+
36
import java.awt.Desktop;
47
import java.awt.Toolkit;
58
import java.awt.datatransfer.StringSelection;
@@ -204,6 +207,14 @@ public static String getJava() {
204207
return System.getProperties().getProperty("java.home") + File.separator + "bin" + File.separator + "java";
205208
}
206209

210+
public static String getJava(MCP mcp) {
211+
String javaHome = mcp.getOptions().getStringParameter(TaskParameter.JAVA_HOME);
212+
if (javaHome == null || javaHome.isEmpty()) {
213+
return System.getProperties().getProperty("java.home") + File.separator + "bin" + File.separator + "java";
214+
}
215+
return javaHome;
216+
}
217+
207218
public static int getJavaVersion() {
208219
String javaVersion = System.getProperty("java.version");
209220
String[] versionParts = javaVersion.split("\\.");

0 commit comments

Comments
 (0)