JExpress Release Notes

Current Release: 9.7              Which version am I running?



  • Resolved race condition in the updater when client has very fast computer.
  • Fixed a casting error for HttpURLConnection.
  • Use standard java to make http post connections instead of using apache.


  • Improved using a proxy with the updater.
  • Require that the JVM settings for all platforms are for JVM 1.6 or later.
  • Compile all classes with JVM 1.6 code base.
  • Do not set anti-aliasing to true if the command line sets it to false in the installer and updater.
  • Detect when the server does not send the entire file during an update, but reports the file was sent correctly.
  • Flush output after each write when receiving updates.


  • Small touchups to zipping files


  • Final touchups to handle the Mac OS X quirks in strcpy().


  • Handled a quirk in some versions of Mac OS X handling strcpy().
  • Included javaapp and winapi source directories with the source distribution.


  • Fixed a bug when creating a Mac OS X launcher with a space in it.
  • Do not require i686 libraries when creating a native Linux installer.
  • Added diagnostic log, macos.log, in case installation had difficulties on Mac OS X.


  • Fixed a bug when running a native Mac installer which popped up the installer, but it immediately closes.


  • Fixed a bug when creating a Mac OS X native installer on Windows.
  • Announced end of life of JExpress and CopyCheq.


  • Early Windows 10 support


  • Detect Windows 8.1
  • Create the platforms subdirectory in a project if it's missing.
  • Fixed a serious error in the native Windows 64 bit installer.
  • Introduced a Team license.


  • Support non-ASCII characters in distributed filenames.
  • Default new projects to use icons and text instead of just text.
  • Fixed a parsing bug when extra parameters passed on the command line to a launcher.
  • Removed an supurious argument for Mac launchers.
  • Increased the size for command line arguments for a launcher.
  • Fixed a null pointer when using variables in the installer.


  • Ask user if they want to stop the installer when they click the Close button.
  • Fix an intermittent bug when the Updater updated itself.
  • Include Hello class files in distribution.


  • Support passing command line arguments to Mac app bundles.
  • Fix a memory leak when launching Windows java apps.
  • Warn users if the installer or updater settings can't be saved.
  • Include the themes subdirectory with the Enterprise distribution.


  • Remove JRE when installed in Linux's, Mac's, or Solaris' installation subdirectory.
  • Allow the Welcome panel to display a custom HTML file.
  • Fixed a bug with native Linux installers that include the JVM.
  • Do not include a dash at the end of the installer name if no version defined.
  • Increased the width of the panel which displays errors during installation.
  • Require that the JVM settings for all platforms are for JVM 1.5 or later.
  • Permit Solaris installers to be tested from inside JExpress Builder.
  • Support 64 bit Java on Solaris.


  • Strip non-printable characters from the CFBundleGetInfoString in app bundles.
  • Fixed a bug when creating Mac installer on Windows without special DMG batch file.
  • Increased size of entry fields on several panels.
  • Split the Welcome panel in the Advanced interface into 2 tabs.


  • Install Java 7 or later on Mac 10.7.3 or later.
  • Installers on Mac work with Java 5, Java 6, Java 7 or later.
  • Create a dmg Mac installer when installer created on OS X or Linux.
  • Include compatibility key for Windows 8 in all EXEs.
  • Integrate finding java classes and selecting files to distribute.
  • Show the java classes automatically found in the End user system's installation directory's listing.
  • Report an error if the distribution files are too large.
  • Report an error if the installer is too large and offer suggestions how to reduce the size.
  • Don't show the full details of the exception in Builder's status window.
  • Turn Build and Test buttons grey when disabled.
  • Do not save the platform properties during an unattended build.
  • Updated cinstaller for Linux 64 bit.
  • Disable searching in the path for a JVM on Mac since it can return a false positive on 10.7 and later.
  • Disable all platform buttons on Build panel when building a subproject or jar project.
  • Fixed a bug in selecting look and feel option.
  • Moved the Java classes tab to the Select Files tab.
  • Do not include [$AppName] as part of the default project directory when starting a new project.
  • When starting a new project, initiate the Build classpath to JVM's system classpath.
  • Notice to existing customers:
    • Deprecated addMacLauncher() in MacOS. Replaced with createLauncher().
    • Deprecated setSplashFile() in MacOS. Include the splash file in the JVM extra parameters on the JVM tab.
    • Redesigned the Mac app bundles to allow the same installer to work with any supported version of Java.


  • Detect the version of the JVM being bundled automatically.
  • Verify that there is a java executable in the JVM directory used to create a JVM bundle.
  • Warn the user that the updates expired before attempting to update JExpress.
  • Fixed adding desktop icons for everyone on Windows.


  • Automatically fill in the 3rd party installer command after the user selects the path if the command is blank.
  • Re-organized the JVM panel so the options are spread across more sub-tabs.
  • Do not automatically fill in the JRE version when selecting the 3rd party JVM installer unless install pathnames have already been set.
  • Start the Wizard interface if selected from the initial launch dialog.
  • Include separate fields for the bundled jvm version and the 3rd party installer version.
  • Streamlined the 3rd party JVM installer's dialog box.
  • Fixed selecting "New project" from the initial launch dialog.
  • Do not warn about not finding the main class for a menu if the class is in a JAR file.
  • Enable the menu on Mac on startup.
  • When you start a New project and then switch between Advanced and Wizard interface, remember the new project.
  • Uninstall the desktop icon and boot menu items on Windows when installed for all users.
  • Updated several tutorials.


  • Use the Base directory in the 3rd party installer's pathname.
  • Include methods to detect Windows 8.
  • Added more logging while adding and deleting Windows menus.
  • Fixed selecting the image and wizard button positions on the Layout panel.
  • Handle missing theme from project when migrating an older project.


  • Support SOCKS proxies.
  • Change proxy settings for updater and JExpress from Options menu.
  • Elimintated the Redirect properties for the Updater.
  • Support 3rd party installers for the JVM on Windows and Linux.


  • Install java app as a Windows service. Java main class must have start() and stop() methods.
  • Sign Mac OS X native installers when user supplies a certificate and command.
  • Pass predefined command line arguments to the program after auto-updating.
  • Advanced interface's launcher dialog box now uses 2 inner tabs instead of 2 nested dialog boxes.
  • Visibly enable/disable options panels when a modal dialog box opens in the Advanced interface.
  • Do not escape colons when converting variables for a non-java menu on Windows.
  • If unable to verify license during an unattended build, exit with a -1 result code.
  • Do not display a zero in the proxy port settings when a port hasn't been set.
  • Fixed a possible race condition.
  • Throw an error if attempt to distribute a file in the local build directory.
  • Adjusted all examples in Sample directory to synchronize enter() methods.
  • Change the initial default interface to Advanced for Mac users.
  • Save the minimum consolidated JVM requirements in cross platform installer.
  • If no JVM requirements defined when creating Windows launcher, set minimum JRE 1.5.
  • Fixed finding an updated JRE on Windows if original replaced.
  • Close updater when Exit button clicked if updater updated itself.
  • Removed extra leading period when selecting a project while launching JExpress.
  • Notice to existing customers: If you have any custom Java classes, then be sure to verify that your classes include the word synchronized in front of the following methods: prepareToEnter(), enter(), leave(), and setActive().


  • Support proxies that require authentication be provided before requested, such as ISA Server 6.
  • Reset the proxy configuration if user removes the proxy settings.
  • Do not blank the proxy port number when requesting the user enter the proxy settings.
  • Re-enabled displaying changes log from computers running unix.


  • Install launcher as a service when installed on Windows or Linux as superuser.
  • Detect proxy server automatically whenever possible.
  • Each project now has its own subdirectory where the project settings file (jex file), platform settings, etc. are maintained.
    Notice to existing customers: JExpress converts your projects to the new layout when you run JExpress interactively. Learn more.
  • Prompt for credentials and proxy setting in 2 separate panels when CopyCheq active.
  • When warnings detected in build, let user view warnings in the status window.
  • Improved management of native launchers with a different working directory than the install directory.
  • Automatically exclude files from the build directory if the build directory is part the Select Files list.
  • Improved the build.xml and build-custom.xml examples in the Samples subdirectory.
  • Added example to the Samples subdirectory.
  • Updated UninstallMenu example in the Samples subdirectory.
  • Fixed jump points in the manual to the Samples subdirectory.
  • Add each opened project to the Recent menu after it's opened.
  • Fixed displaying prices from computers running unix.
  • Temporarily disabled displaying changes log from computers running unix.
  • Moved the "Add test icons" checkbox closer to the Build button in the Advanced interface.


  • Fixed API interface.


  • Create a 2 stage auto-updater when installing on a Windows Vista/7/8 or Mac if install dir is a secure directory (e.g., Program files).
  • Support SSL and TLS ftp connections.
  • Support proxy servers when uploading files to your ftp server.
  • Support passive and active ftp connections.
  • Rollback the install directory if user cancel installer and they installed into a new directory.
  • Configure the uninstaller to run as admin if the installer must run as admin.
  • Fixed a bug in determining if the correct version of the JVM is installed on Mac.
  • Automatically configure auto-updater to run as admin on Mac if install dir is in the /Applications dir.
  • Set the working directory on Mac relative to the install dir, not the app launcher dir.
  • Fixed a formatting error in a click free uninstaller.
  • No longer distribute identity.obj with the cross platform installer.
  • Add the estimated size to Windows registry for the uninstaller.
  • Add the URLInfoAbout to Windows registry for the uninstaller if website defined and begins with http.
  • Fixed the WindowsRegistry API method replaceData when an Integer was the third parameter.
  • Set project's colors when loading from the Open menu.
  • Changed the layout of the launch dialog so New and Open are on the same line.
  • Changed "Short project name" to "Project filename" when starting a new project.
  • When Enter clicked in the New project dialog, act as if OK button clicked.
  • When user starts New project when JExpress starts, don't return to the launch dialog.
  • Report if a directory has a security restriction that won't allow it to be included in the selected files.
  • Fixed launching an app on Mac after installer finishes.
  • Enable dialog box after browsing for new directory to save projects.
  • Show the ftp user id while entering (formerly displayed asterisks).
  • Save all warnings during a build in warnings.log instead of errors.log.
  • Set the file size to MB if the webpages templates use __FILE_IN_MB__ instead of __FILESIZE__.
  • Call the userCancel methods for all installer panels if user clicks the close button.
  • Remove the temporary status file when exiting JExpress.
  • Doubled the estimated time to uninstall application.
  • Added Reset buttons to the Parent install directory dialog.
  • Report the name of the class file which uses dynamic loading.


  • Delete the JRE on Windows if installed in a subdirectory of the install dir and named jvm, jre, or java.
  • Optionally, specify the working directory for a menu if not the install directory.
  • Each launcher can be installed by OS
  • Split the launcher dialog box into 2 when using the Advanced interface.
  • Recognize Escape key when trying to enter an email address.
  • Pressing Enter when entering the email address during the trial moves to the next panel.
  • Disabled maximize button on JExpress Builder.
  • Introduced the Standard license. All customers with a Binary license have been upgraded to the Standard license.
  • Introduced the Enterprise license. All customers with an Installer source license have been upgraded to the Enterprise license.