< prev index next >

modules/fxpackager/src/main/java/jdk/packager/builders/AbstractAppImageBuilder.java

Print this page




 162                 if (e.getValue() != null) {
 163                     result = result.replace(e.getKey(), e.getValue());
 164                 }
 165             }
 166             return result;
 167         }
 168     }
 169 
 170     public void writeCfgFile(Map<String, ? super Object> params, File cfgFileName, String runtimeLocation) throws IOException {
 171         cfgFileName.delete();
 172 
 173         boolean appCDEnabled = UNLOCK_COMMERCIAL_FEATURES.fetchFrom(params) && ENABLE_APP_CDS.fetchFrom(params);
 174         String appCDSCacheMode = APP_CDS_CACHE_MODE.fetchFrom(params);
 175         File mainJar = JLinkBundlerHelper.getMainJar(params);
 176         Module.ModuleType mainJarType = Module.ModuleType.Unknown;
 177 
 178         if (mainJar != null) {
 179             mainJarType = new Module(mainJar).getModuleType();
 180         }
 181 
 182         String mainModule = JLinkBundlerHelper.MAIN_MODULE.fetchFrom(params);
 183 
 184         PrintStream out = new PrintStream(cfgFileName);
 185 
 186         out.println("[Application]");
 187         out.println("app.name=" + APP_NAME.fetchFrom(params));
 188         out.println("app.version=" + VERSION.fetchFrom(params));
 189         out.println("app.preferences.id=" + PREFERENCES_ID.fetchFrom(params));
 190         out.println("app.runtime=" + runtimeLocation);
 191         out.println("app.identifier=" + IDENTIFIER.fetchFrom(params));
 192         out.println("app.classpath=" + String.join(File.pathSeparator, CLASSPATH.fetchFrom(params).split("[ :;]")));
 193 
 194         // The main app is required to be a jar, modular or unnamed.
 195         if (mainJarType == Module.ModuleType.Unknown || mainJarType == Module.ModuleType.ModularJar) {
 196             if (mainModule != null) {
 197                 out.println("app.mainmodule=" + mainModule);
 198             }
 199         }
 200         else {
 201             String mainClass = JLinkBundlerHelper.getMainClass(params);
 202 
 203             if (mainJar != null && mainClass != null) {
 204                 // If the app is contained in an unnamed jar then launch it the old
 205                 // fashioned way and the main class string must be of the format com/foo/Main
 206                 out.println("app.mainclass=" + mainClass.replaceAll("\\.", "/"));
 207                 out.println("app.mainjar=" + mainJar);
 208             }
 209         }
 210 


 211         Integer port = JLinkBundlerHelper.DEBUG_PORT.fetchFrom(params);
 212 
 213         if (port != null) {
 214             out.println("app.debug=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=localhost:" + port);
 215         }
 216 
 217         //TODO this is a little tricky now with a modular JDK.
 218         //out.println("app.java.version=" + );
 219 
 220         if (appCDEnabled) {
 221             out.println("app.appcds.cache=" + appCDSCacheMode.split("\\+")[0]);
 222         }
 223 
 224 
 225         out.println();
 226         out.println("[JVMOptions]");
 227         List<String> jvmargs = JVM_OPTIONS.fetchFrom(params);
 228         for (String arg : jvmargs) {
 229             out.println(arg);
 230         }
 231         Map<String, String> jvmProps = JVM_PROPERTIES.fetchFrom(params);
 232         for (Map.Entry<String, String> property : jvmProps.entrySet()) {
 233             out.println("-D" + property.getKey() + "=" + property.getValue());
 234         }
 235         String preloader = PRELOADER_CLASS.fetchFrom(params);
 236         if (preloader != null) {
 237             out.println("-Djavafx.preloader="+preloader);
 238         }
 239 




 162                 if (e.getValue() != null) {
 163                     result = result.replace(e.getKey(), e.getValue());
 164                 }
 165             }
 166             return result;
 167         }
 168     }
 169 
 170     public void writeCfgFile(Map<String, ? super Object> params, File cfgFileName, String runtimeLocation) throws IOException {
 171         cfgFileName.delete();
 172 
 173         boolean appCDEnabled = UNLOCK_COMMERCIAL_FEATURES.fetchFrom(params) && ENABLE_APP_CDS.fetchFrom(params);
 174         String appCDSCacheMode = APP_CDS_CACHE_MODE.fetchFrom(params);
 175         File mainJar = JLinkBundlerHelper.getMainJar(params);
 176         Module.ModuleType mainJarType = Module.ModuleType.Unknown;
 177 
 178         if (mainJar != null) {
 179             mainJarType = new Module(mainJar).getModuleType();
 180         }
 181 
 182         String mainModule = JLinkBundlerHelper.MODULE.fetchFrom(params);
 183 
 184         PrintStream out = new PrintStream(cfgFileName);
 185 
 186         out.println("[Application]");
 187         out.println("app.name=" + APP_NAME.fetchFrom(params));
 188         out.println("app.version=" + VERSION.fetchFrom(params));
 189         out.println("app.preferences.id=" + PREFERENCES_ID.fetchFrom(params));
 190         out.println("app.runtime=" + runtimeLocation);
 191         out.println("app.identifier=" + IDENTIFIER.fetchFrom(params));
 192         out.println("app.classpath=" + String.join(File.pathSeparator, CLASSPATH.fetchFrom(params).split("[ :;]")));
 193 
 194         // The main app is required to be a jar, modular or unnamed.
 195         if (mainJarType == Module.ModuleType.Unknown || mainJarType == Module.ModuleType.ModularJar) {
 196             if (mainModule != null) {
 197                 out.println("app.mainmodule=" + mainModule); // TODO get app class from main module mainifest.
 198             }
 199         }
 200         else {
 201             String mainClass = JLinkBundlerHelper.getMainClass(params);
 202 
 203             if (mainJar != null && mainClass != null) {
 204                 // If the app is contained in an unnamed jar then launch it the
 205                 // legacy way and the main class string must be of the format com/foo/Main
 206                 out.println("app.mainclass=" + mainClass.replaceAll("\\.", "/"));
 207                 out.println("app.mainjar=" + mainJar);
 208             }
 209         }
 210 
 211         out.println("packager.java.version=" + System.getProperty("java.version"));
 212 
 213         Integer port = JLinkBundlerHelper.DEBUG_PORT.fetchFrom(params);
 214 
 215         if (port != null) {
 216             out.println("app.debug=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=localhost:" + port);
 217         }
 218 



 219         if (appCDEnabled) {
 220             out.println("app.appcds.cache=" + appCDSCacheMode.split("\\+")[0]);
 221         }
 222 
 223 
 224         out.println();
 225         out.println("[JVMOptions]");
 226         List<String> jvmargs = JVM_OPTIONS.fetchFrom(params);
 227         for (String arg : jvmargs) {
 228             out.println(arg);
 229         }
 230         Map<String, String> jvmProps = JVM_PROPERTIES.fetchFrom(params);
 231         for (Map.Entry<String, String> property : jvmProps.entrySet()) {
 232             out.println("-D" + property.getKey() + "=" + property.getValue());
 233         }
 234         String preloader = PRELOADER_CLASS.fetchFrom(params);
 235         if (preloader != null) {
 236             out.println("-Djavafx.preloader="+preloader);
 237         }
 238 


< prev index next >