src/macosx/bundle/appbundler/src/com/oracle/appbundler/AppBundlerTask.java

Print this page




 239         }
 240 
 241         if (classPath.isEmpty()) {
 242             throw new IllegalStateException("Class path is required.");
 243         }
 244 
 245         // Create directory structure
 246         try {
 247             System.out.println("Creating app bundle: " + name);
 248 
 249             File rootDirectory = new File(outputDirectory, name + ".app");
 250             delete(rootDirectory);
 251             rootDirectory.mkdir();
 252 
 253             File contentsDirectory = new File(rootDirectory, "Contents");
 254             contentsDirectory.mkdir();
 255 
 256             File macOSDirectory = new File(contentsDirectory, "MacOS");
 257             macOSDirectory.mkdir();
 258 
 259             File javaDirectory = new File(contentsDirectory, "JavaVM");
 260             javaDirectory.mkdir();
 261 
 262             File classesDirectory = new File(javaDirectory, "Classes");
 263             classesDirectory.mkdir();
 264 
 265             File plugInsDirectory = new File(contentsDirectory, "PlugIns");
 266             plugInsDirectory.mkdir();
 267 
 268             File resourcesDirectory = new File(contentsDirectory, "Resources");
 269             resourcesDirectory.mkdir();
 270 
 271             // Generate Info.plist
 272             File infoPlistFile = new File(contentsDirectory, "Info.plist");
 273             infoPlistFile.createNewFile();
 274             writeInfoPlist(infoPlistFile);
 275 
 276             // Generate PkgInfo
 277             File pkgInfoFile = new File(contentsDirectory, "PkgInfo");
 278             pkgInfoFile.createNewFile();
 279             writePkgInfo(pkgInfoFile);


 338             xout.writeCharacters("\n");
 339 
 340             // Begin root dictionary
 341             xout.writeStartElement(DICT_TAG);
 342             xout.writeCharacters("\n");
 343 
 344             // Write bundle properties
 345             writeProperty(xout, "CFBundleDevelopmentRegion", "English");
 346             writeProperty(xout, "CFBundleExecutable", EXECUTABLE_NAME);
 347             writeProperty(xout, "CFBundleIconFile", (icon == null) ? DEFAULT_ICON_NAME : icon.getName());
 348             writeProperty(xout, "CFBundleIdentifier", identifier);
 349             writeProperty(xout, "CFBundleDisplayName", displayName);
 350             writeProperty(xout, "CFBundleInfoDictionaryVersion", "6.0");
 351             writeProperty(xout, "CFBundleName", name);
 352             writeProperty(xout, "CFBundlePackageType", OS_TYPE_CODE);
 353             writeProperty(xout, "CFBundleShortVersionString", shortVersion);
 354             writeProperty(xout, "CFBundleSignature", signature);
 355             writeProperty(xout, "CFBundleVersion", "1");
 356             writeProperty(xout, "NSHumanReadableCopyright", copyright);
 357 
 358             // Start Java properties
 359             writeKey(xout, "JavaVM");
 360             xout.writeStartElement(DICT_TAG);
 361 
 362             // Write runtime
 363             writeProperty(xout, "Runtime", runtime.getName());
 364 
 365             // Write main class name
 366             writeProperty(xout, "MainClassName", mainClassName);
 367 
 368             // Write options
 369             writeKey(xout, "Options");
 370 
 371             xout.writeStartElement(ARRAY_TAG);
 372             xout.writeCharacters("\n");
 373 
 374             for (String option : options) {
 375                 writeString(xout, option);
 376             }
 377 
 378             xout.writeEndElement();
 379             xout.writeCharacters("\n");
 380 
 381             // Write arguments
 382             writeKey(xout, "Arguments");
 383 
 384             xout.writeStartElement(ARRAY_TAG);
 385             xout.writeCharacters("\n");
 386 
 387             for (String argument : arguments) {
 388                 writeString(xout, argument);
 389             }
 390 
 391             xout.writeEndElement();
 392             xout.writeCharacters("\n");
 393 
 394             // End Java properties
 395             xout.writeEndElement();
 396             xout.writeCharacters("\n");
 397 
 398             // End root dictionary
 399             xout.writeEndElement();
 400             xout.writeCharacters("\n");
 401 
 402             // End root element
 403             xout.writeEndElement();
 404             xout.writeCharacters("\n");
 405 
 406             // Close document
 407             xout.writeEndDocument();
 408             xout.writeCharacters("\n");
 409 
 410             out.flush();
 411         } catch (XMLStreamException exception) {
 412             throw new IOException(exception);
 413         } finally {
 414             out.close();
 415         }
 416     }
 417 




 239         }
 240 
 241         if (classPath.isEmpty()) {
 242             throw new IllegalStateException("Class path is required.");
 243         }
 244 
 245         // Create directory structure
 246         try {
 247             System.out.println("Creating app bundle: " + name);
 248 
 249             File rootDirectory = new File(outputDirectory, name + ".app");
 250             delete(rootDirectory);
 251             rootDirectory.mkdir();
 252 
 253             File contentsDirectory = new File(rootDirectory, "Contents");
 254             contentsDirectory.mkdir();
 255 
 256             File macOSDirectory = new File(contentsDirectory, "MacOS");
 257             macOSDirectory.mkdir();
 258 
 259             File javaDirectory = new File(contentsDirectory, "Java");
 260             javaDirectory.mkdir();
 261 
 262             File classesDirectory = new File(javaDirectory, "Classes");
 263             classesDirectory.mkdir();
 264 
 265             File plugInsDirectory = new File(contentsDirectory, "PlugIns");
 266             plugInsDirectory.mkdir();
 267 
 268             File resourcesDirectory = new File(contentsDirectory, "Resources");
 269             resourcesDirectory.mkdir();
 270 
 271             // Generate Info.plist
 272             File infoPlistFile = new File(contentsDirectory, "Info.plist");
 273             infoPlistFile.createNewFile();
 274             writeInfoPlist(infoPlistFile);
 275 
 276             // Generate PkgInfo
 277             File pkgInfoFile = new File(contentsDirectory, "PkgInfo");
 278             pkgInfoFile.createNewFile();
 279             writePkgInfo(pkgInfoFile);


 338             xout.writeCharacters("\n");
 339 
 340             // Begin root dictionary
 341             xout.writeStartElement(DICT_TAG);
 342             xout.writeCharacters("\n");
 343 
 344             // Write bundle properties
 345             writeProperty(xout, "CFBundleDevelopmentRegion", "English");
 346             writeProperty(xout, "CFBundleExecutable", EXECUTABLE_NAME);
 347             writeProperty(xout, "CFBundleIconFile", (icon == null) ? DEFAULT_ICON_NAME : icon.getName());
 348             writeProperty(xout, "CFBundleIdentifier", identifier);
 349             writeProperty(xout, "CFBundleDisplayName", displayName);
 350             writeProperty(xout, "CFBundleInfoDictionaryVersion", "6.0");
 351             writeProperty(xout, "CFBundleName", name);
 352             writeProperty(xout, "CFBundlePackageType", OS_TYPE_CODE);
 353             writeProperty(xout, "CFBundleShortVersionString", shortVersion);
 354             writeProperty(xout, "CFBundleSignature", signature);
 355             writeProperty(xout, "CFBundleVersion", "1");
 356             writeProperty(xout, "NSHumanReadableCopyright", copyright);
 357 




 358             // Write runtime
 359             writeProperty(xout, "JVMRuntime", runtime.getName());
 360 
 361             // Write main class name
 362             writeProperty(xout, "JVMMainClassName", mainClassName);
 363 
 364             // Write options
 365             writeKey(xout, "JVMOptions");
 366 
 367             xout.writeStartElement(ARRAY_TAG);
 368             xout.writeCharacters("\n");
 369 
 370             for (String option : options) {
 371                 writeString(xout, option);
 372             }
 373 
 374             xout.writeEndElement();
 375             xout.writeCharacters("\n");
 376 
 377             // Write arguments
 378             writeKey(xout, "JVMArguments");
 379 
 380             xout.writeStartElement(ARRAY_TAG);
 381             xout.writeCharacters("\n");
 382 
 383             for (String argument : arguments) {
 384                 writeString(xout, argument);
 385             }
 386 
 387             xout.writeEndElement();
 388             xout.writeCharacters("\n");
 389 




 390             // End root dictionary
 391             xout.writeEndElement();
 392             xout.writeCharacters("\n");
 393 
 394             // End root element
 395             xout.writeEndElement();
 396             xout.writeCharacters("\n");
 397 
 398             // Close document
 399             xout.writeEndDocument();
 400             xout.writeCharacters("\n");
 401 
 402             out.flush();
 403         } catch (XMLStreamException exception) {
 404             throw new IOException(exception);
 405         } finally {
 406             out.close();
 407         }
 408     }
 409