|
45 | 45 | import java.io.IOException;
|
46 | 46 | import java.lang.management.ManagementFactory;
|
47 | 47 | import java.nio.ByteOrder;
|
| 48 | +import java.util.ArrayList; |
48 | 49 | import java.util.Date;
|
49 | 50 | import java.util.List;
|
50 | 51 |
|
@@ -110,19 +111,27 @@ public void initialize(PythonCore core) {
|
110 | 111 | builtinConstants.put("executable", PNone.NONE);
|
111 | 112 | } else {
|
112 | 113 | StringBuilder sb = new StringBuilder();
|
113 |
| - sb.append(System.getProperty("java.home")).append(PythonCore.FILE_SEPARATOR).append("bin").append(PythonCore.FILE_SEPARATOR).append("java "); |
| 114 | + ArrayList<String> exec_list = new ArrayList<>(); |
| 115 | + sb.append(System.getProperty("java.home")).append(PythonCore.FILE_SEPARATOR).append("bin").append(PythonCore.FILE_SEPARATOR).append("java"); |
| 116 | + exec_list.add(sb.toString()); |
| 117 | + sb.append(' '); |
114 | 118 | for (String arg : ManagementFactory.getRuntimeMXBean().getInputArguments()) {
|
115 | 119 | if (arg.matches("-Xrunjdwp:transport=dt_socket,server=y,address=\\d+,suspend=y")) {
|
116 | 120 | arg = arg.replace("suspend=y", "suspend=n");
|
117 | 121 | }
|
118 | 122 | sb.append(arg).append(' ');
|
| 123 | + exec_list.add(arg); |
119 | 124 | }
|
120 | 125 | sb.append("-classpath ");
|
| 126 | + exec_list.add("-classpath"); |
121 | 127 | sb.append(System.getProperty("java.class.path")).append(' ');
|
| 128 | + exec_list.add(System.getProperty("java.class.path")); |
122 | 129 | // we really don't care what the main class or its arguments were - this should
|
123 | 130 | // always help us launch Graal.Python
|
124 | 131 | sb.append("com.oracle.graal.python.shell.GraalPythonMain");
|
| 132 | + exec_list.add("com.oracle.graal.python.shell.GraalPythonMain"); |
125 | 133 | builtinConstants.put("executable", sb.toString());
|
| 134 | + builtinConstants.put("executable_list", core.factory().createList(exec_list.toArray())); |
126 | 135 | }
|
127 | 136 | builtinConstants.put("modules", core.factory().createDict());
|
128 | 137 | builtinConstants.put("path", core.factory().createList());
|
|
0 commit comments