@@ -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