@@ -86,7 +86,9 @@ public class BundleLauncher {
8686
8787 public static ContainerSupport containerSupport ;
8888
89- public static Map <String , String > launcherEnvironment = new HashMap <>();
89+ private static final List <String > launchArgs = new ArrayList <>();
90+ private static final List <String > applicationArgs = new ArrayList <>();
91+ private static final Map <String , String > launcherEnvironment = new HashMap <>();
9092
9193
9294 public static void main (String [] args ) {
@@ -101,6 +103,8 @@ public static void main(String[] args) {
101103 System .exit (1 );
102104 }
103105
106+ parseBundleLauncherArgs (args );
107+
104108 ProcessBuilder pb = new ProcessBuilder ();
105109
106110 Path environmentFile = stageDir .resolve ("environment.json" );
@@ -112,7 +116,7 @@ public static void main(String[] args) {
112116 throw new Error ("Failed to read bundle-file " + environmentFile , e );
113117 }
114118 }
115- pb .command (createLaunchCommand (args ));
119+ pb .command (createLaunchCommand ());
116120
117121 if (verbose ) {
118122 List <String > environmentList = pb .environment ()
@@ -151,7 +155,7 @@ public static boolean useContainer() {
151155 return containerSupport != null ;
152156 }
153157
154- private static List <String > createLaunchCommand (String [] args ) {
158+ private static List <String > createLaunchCommand () {
155159 List <String > command = new ArrayList <>();
156160
157161 Path javaExecutable = getJavaExecutable ().toAbsolutePath ().normalize ();
@@ -162,6 +166,7 @@ private static List<String> createLaunchCommand(String[] args) {
162166 Map <Path , TargetPath > mountMapping = mountMappingFor (javaHome , inputDir , outputDir );
163167 if (Files .isDirectory (agentOutputDir )) {
164168 mountMapping .put (agentOutputDir , TargetPath .of (agentOutputDir , false ));
169+ launcherEnvironment .put ("LD_LIBRARY_PATH" , CONTAINER_GRAAL_VM_HOME .resolve ("lib" ).toString ());
165170 }
166171
167172 containerSupport .initializeContainerImage ();
@@ -171,8 +176,6 @@ private static List<String> createLaunchCommand(String[] args) {
171176 command .add (javaExecutable .toString ());
172177 }
173178
174- List <String > applicationArgs = new ArrayList <>();
175- List <String > launchArgs = parseBundleLauncherArgs (args , applicationArgs );
176179 command .addAll (launchArgs );
177180
178181 List <String > classpath = new ArrayList <>();
@@ -249,9 +252,8 @@ private static int updateBundle() {
249252 }
250253 }
251254
252- private static List < String > parseBundleLauncherArgs (String [] args , List < String > applicationArgs ) {
255+ private static void parseBundleLauncherArgs (String [] args ) {
253256 Deque <String > argQueue = new ArrayDeque <>(Arrays .asList (args ));
254- List <String > launchArgs = new ArrayList <>();
255257
256258 while (!argQueue .isEmpty ()) {
257259 String arg = argQueue .removeFirst ();
@@ -316,8 +318,6 @@ private static List<String> parseBundleLauncherArgs(String[] args, List<String>
316318 }
317319 }
318320 }
319-
320- return launchArgs ;
321321 }
322322
323323 private static final Path buildTimeJavaHome = Paths .get (System .getProperty ("java.home" ));
0 commit comments