I'm posting here after much study of all the previous postings (on this site and elsewhere) regarding problems in running a JavaFX application (developed using JWrapper as the launcher) in a VMWare encapsulated instance of Mac OSX 10.10. [NOTE: edited the preceding sentence and the title of this posting on 2015-02-25 to add reference to VMWare.]
After experiencing failure of my much larger Java 1.8.0_25 application to install and launch in Mac OSX v10.10.1, I replicated the problem using a 3-line "Hello World" JavaFX application.
In both cases, I am using what seem to be the standard Mac-oriented parameter settings in the JWrapper build-parm XML:
<JvmOption>-Djavafx.macosx.embedded=true</JvmOption>
<MustFork>true</MustFork>
In both cases, when attempting installation on the Mac, the JWrapper splash screen appears as expected, but then it goes away, and the application itself fails to launch.
Here are the links to (1) zip file with all logs from an attempted "HelloWorldFX" installation on Mac OSX v10.10.1, and (2) zip file with the log and "build" folder from the application's JWrapper build process. Note that this application installs and runs fine in Windows and Ubuntu.
Logs: https://googledrive.com/host/0B0skoeyva4KiUDZBS1FSUXo4RUU/mac_logs.zip
Build folder (300MB): https://googledrive.com/host/0B0skoeyva4KiUDZBS1FSUXo4RUU/helloWorldFX_build_folder.zip
Here are the highlights:
The HelloWorldFX code (pretty much the entirety of the application):
public void start(Stage stage) {
stage.setTitle("Hello World FX");
stage.setScene
(new Scene(new StackPane(new Button("Hello World FX")), 600, 250));
stage.show();
}
My complete JWrapper build parms:
<JWrapper>
<!-- The name of the app bundle -->
<BundleName>HelloWorldFX3</BundleName>
<!-- The specification for one app within the bundle -->
<App>
<Name>HelloWorldFX3</Name>
<LogoPNG>images/logo.png</LogoPNG>
<MainClass>helloworldfx.HelloWorldFX</MainClass>
</App>
<SupportedLanguages>en</SupportedLanguages>
<!-- App is a per-user app, it won't elevate and install for all users and the shared config folder will be per-user -->
<InstallType>CurrentUser</InstallType>
<!-- No <UpdateURL> element included here: only interested in **offline** installation -->
<!-- Splash and Logo -->
<SplashPNG>images/splash.png</SplashPNG>
<BundleLogoPNG>images/logo.png</BundleLogoPNG>
<!-- JVM options (e.g. extra memory) -->
<JvmOptions>
<JvmOption>-Xmx256m</JvmOption>
<!-- following Mac-related option IS used in this build: for info, see: http://www.jwrapper.com/old-forum.html#nabble-td409 -->
<JvmOption>-Djavafx.macosx.embedded=true</JvmOption>
</JvmOptions>
<!-- The JREs JWrapper should use for Windows, Linux32, Linux64... -->
<Windows32JRE>jrepack18/win32/jre1.8.0_25</Windows32JRE>
<Windows64JRE>jrepack18/win32/jre1.8.0_25</Windows64JRE>
<Linux32JRE>jrepack18/linux/jre1.8.0_25</Linux32JRE>
<Linux64JRE>jrepack18/linuxx64/jre1.8.0_25</Linux64JRE>
<Mac64JRE>jrepack18/macos64/jre1.8.0_25.jre</Mac64JRE>
<!-- The files that the app wants to bundle, here we have just one which is a JAR file and we specify that it should be on the launch classpath -->
<File classpath='yes'>helloWorldApp/HelloWorldFX.jar</File>
<!-- NoStripJREs option required to avoiding stripping out of JavaFX classes! For info, see: http://www.jwrapper.com/old-forum.html#nabble-td89 -->
<NoStripJREs>true</NoStripJREs>
<!-- This Mac-related option IS used in this build: -->
<MustFork>true</MustFork>
</JWrapper>
An ominous message from the "Wrapper" log file on the Mac:
+1 [BundleLoader] Could not load JRE bundle!
One curious line from the "Generic Updater" log file on the Mac, in which a file name is apparently truncated by JWrapper, resulting in a file not found exception:
8574158 (+0) java.io.FileNotFoundException: /Users/admin/Library/Application Support/JWrapper-HelloWorldFX3/JWrapper-JWrapper-00033253833-complete/JWAppSpec- (No such file or directory)
The entirety of the "HelloWorldFX" log file on the Mac (just craps out after or while attempting to disable App Nap):
8574542 (+0) STDOUT test
8574542 (+0) STDERR test
8574543 (+1) [LogFolderCleaner] Keeping Wrapper-2015-02-18-23-56-04-443.log
8574543 (+0) [LogFolderCleaner] Keeping HelloWorldFX3-HelloWorldFX3-2015-02-18-23-56-14-525.log
8574544 (+1) [LogFolderCleaner] Keeping GenericUpdater-2015-02-18-23-56-13-488.log
8574545 (+1) [EDT Exception Printer] Catching all EDT and uncaught exceptions and printing
8574548 (+3) [JWrapperNative] Detected 64-bit architecture
8574548 (+0) [JWrapperNative] Detected Mac OS
8574551 (+3) [JWrapper] sun.java2d.dpiaware: null
8574558 (+7) [JWDetectedProxy] No proxy configuration found to load.
8574559 (+1) JVM Option: -Xmx256m
8574559 (+0) JVM Option: -Djavafx.macosx.embedded=true
8574559 (+0) [JWrapper] JVM Home: /Users/admin/Library/Application Support/JWrapper-HelloWorldFX3/JWrapper-Mac64JRE-00034082796-complete
8574573 (+14) [JWrapper] Wrote JVM Options OK
8574574 (+1) [JWrapper] Set app name to HelloWorldFX3
8574577 (+3) [JWrapper] Loading virtual app
8574577 (+0) [JWrapper] Got virtual app HelloWorldFX3
8574577 (+0) [JWrapper] Setting OS dock info
8574786 (+209) [JWrapper] Image: BufferedImage@5ef04b5: type = 6 ColorModel: #pixelBits = 32 numComponents = 4 color space = java.awt.color.ICC_ColorSpace@5f4da5c3 transparency = 3 has alpha = true isAlphaPre = false ByteInterleavedRaster: width = 256 height = 245 #numDataElements 4 dataOff[0] = 3
8574887 (+101) [JWrapper] Disabling App Nap
Any assistance with getting this problem resolved would be GREATLY appreciated!!