- Added new "APPDIR" environment variable that expands to the application EXE directory.
- Extended environment variable substitution to application config file.
- Fixed the inability to detect and use the "server" version of Java 10 runtime.
- Added "AppMutex" parameter in application configuration file to allow for dynamic customization of application mutex name.
- Updated to add support for Java 9 runtime.
- Added new "JvmPath" paramater in application configuration file.
- Added new "JvmVersion" paramater in application configuration file.
- Fixed a spelling error in one of the options under "Application Manifest Type".
- Previously, clicking on the "Add folder" button under the "Classpath" tab will abort with an error message under certain situations. This has been fixed.
- Added new variable substitution for "%AVAILRAM%" and "%TOTALRAM%".
- Added "JvmOptionsAppend" parameter to application INI file.
- Added new variable substitution for %DATE% and %TIME%.
- Fixed incorrect markup in help file.
- Added x64 EXE names for all sample projects.
- Added additional constraints that can be specified under the "Minimum JVM version" setting. The constraint format can be found in the help file under "Advanced topics", "Specifying the desired JVM version" topic.
- Previously, the environment variable substitution module will mangle a token of the form "%p". This has been fixed.
- Previously, NativeJ will return double-quoted parameters with the quotes included. This is different from the behaviour of the default Java launcher and has been fixed.
- Updated documentation to include information on how to escape double quotes within parameters in the application INI file.
- Previously, if any of the JVM or application argument fields contain one or more double quotes, it will result in error during EXE generation. This has been fixed.
- Environment variable subsitution is now performed on static and default application arguments.
- Previously, the 32-bit executable filename is a mandatory field, even if only the 64-bit EXE is needed. This has been fixed.
- Previously, when launching a project file via Windows Explorer as the first project in NativeJ, a dialog box pops up and asks if the previous project needs to be saved. This has been fixed.
- Added support for application INI parameter "ShowConsole" for console EXEs.
- Fixed minimum width of window so that checkbox in embedded JARs page is not obscured.
- Previously, the generated EXE will crash if the application INI file is not specified. This has been fixed.
- Help file tutorials have been updated to reflect changed field names in the user interface.
- Added options to append to log files instead of overwriting them every time.
- Ignore "Use current directory" option when generated EXE is started as a service.
- Removed restriction on "-X" and "-D" -only JVM options, and allow usage of all applicable JVM options.
- Added "nativej.appini.showconsole" property.
- Added "%APPNAME%" variable substitution in application configuration filename.
- Fixed handling of project resources with relative paths.
- Fixed typo of field name in version info editor.
- Better cleanup of temporary files after project generation.
- Ensure icon/splash/manifest files are present before allowing the project to be generated.
- Previously if the icon/splash/manifest files are missing during project generation, the error message displayed does not identify the missing file. This has been fixed.
- Duplicate accelerator keys was found in some of the screens. This has been fixed.
- Import logic for executable JAR files has been improved.
- In some cases, after dismissing the project generation window, the main window may not come into focus. This has been fixed.
- Private JVM DLL may not work if it contains certain character sequences. This has been fixed.
- Added sample path to label of private JVM DLL field.
- Initial sizing of application main window has been improved.
- Use default system font for user interface.
- Fixed various UI related quirks for Vista/Windows 7.
- Item order may be jumbled at the welcome screen. This has been fixed.
- Project may be marked as changed before option is selected from welcome screen. This has been fixed.
- Updated screenshot in help file.
- New registration code is required for this major release.
- Added NativeJ Express for casual users who need a simpler program.
- Added ability to generate Win64 EXE.
- Added ability to embed custom application manifest.
- Added function to create new project from executable JAR.
- Added ability to create/embed message sets for different locales.
- Newlines are now supported in messages using "\n".
- Allow micro version to be specified in minimum JVM version.
- Added support for inter-instance invocation.
- Make it possible to activate both splash screen display options.
- Added buttons to make it easier to add files/folders to the classpath or embedded JAR files fields.
- Added additional action options if suitable JVM cannot be found.
- Fixed loading of MSVCR71.DLL from private JRE when generated EXE is run under 64-bit Vista.
- Fixed loading of MSVCR71.DLL from JRE folder when DLL is not found in the system path.
- Added XP visual manifest to generated EXEs.
- Fixed version info corruption in nativej.exe and nativejc.exe.
- Fixed typo in sample.ini and documentation.
- Default to GUI application type for project wizard.
- Added ZIP extension as valid class library type for project wizard.
- Disable "Next" button in project wizard when there is insufficient input to proceed.
- Added environment variable substitution in log file pathnames with automatic path creation.
- A bug has been introduced in the previous version that prevents project files from being updated. This has been fixed.
- When NativeJ opens a project file, project properties are truncated at 2100 characters. This has been fixed.
- Added new NativeJ property "nativej.extract.path" to reflect extraction path if JAR files embedding feature is used.
- A buffer overrun error may occur when a NativeJ-generated service is customized via command-line arguments. This has been fixed.
- Previously, the JVM search order defined in a project file may become jumbled up if you attempt to edit it again after reloading. This has been fixed.
- When a project is opened right after NativeJ is launched, multi-line field values for JVM options, classpath, embedded JAR files and service dependencies may be truncated. This has been fixed.
- Added ability to customize service name, description and startup type via command-line arguments.
- Added NativeJ-specific properties that allow Java code to retrieve the service name, description and startup type when run as a service.
- Previously, if MSVCR71.DLL is not found in the system path, NativeJ EXEs will fail to load an installed copy of JRE V6.0 (JVM V1.6). This has been fixed.
- If forward slashes (instead of backslashes) are used when specifying the path to a private copy of JRE V6.0 (JVM V1.6), the EXE will fail with an error that it is unable to load MSVCR71.DLL if that DLL is not found in the system path. This has been fixed.
- Previously, NativeJ EXEs could not handle input parameters coded in DBCS (double-byte character set). This has been fixed.
- A bug was introduced in Microsoft security update 925902 (MS07-017) and 928843 (MS07-008). If you have installed these updates, you will see this error when you try to run NativeJ: "The system DLL user32.dll was relocated in memory. The application will not run properly. The relocation occurred because the DLL C:\Windows\System32\Hhctrl.ocx occupied an address range reserved for Windows system DLLs. The vendor supplying the DLL should be contacted for a new DLL.". This has been fixed.
- When using a private copy of JRE V6.0 (JVM V1.6), the EXE may fail with an error that it is unable to load MSVCR71.DLL if that DLL is not found in the system path. This has been fixed.
- Previously, if a generated EXE uses both embedded JAR files and application configuration file, and the latter is missing when the EXE is launched, the EXE will not extract the embedded JAR files but will terminate with an error. This has been fixed.
- Added "StaticOptions" parameter to application configuration file.
- Tested with official release of JDK/JRE V6.0 (JVM V1.6).
- Console window is wrongly displayed for GUI apps when both System.out and System.err are set to "None". This has been fixed.
- Added "ShowConsole" parameter to application configuration file.
- Added "StdOutFile" and "StdErrFile" parameters to application configuration file.
- Added system property nativej.csidl.personal that points to the CSIDL_PERSONAL folder.
- Added JAVA_HOME in JDK/JRE search process.
- Added support for JDK/JRE V6.0 (JVM V1.6).
- Added a new option called static arguments that are silently prepended to the default/user arguments and passed to main().
- Added a new option to limit execution of the generated EXE as a service only.
- V4.7.0 introduced a bug where console apps always default to single instance. This has been fixed. Now, you can specify whether a console app is single or multi instance, just like GUI apps.
- Under certain situations, a console window is displayed for GUI apps on Win95/98/Me. This has been fixed.
- Integrated XP manifest into EXE, so external manifest file is no longer required.
- Added option to extract JAR files to application or application temp folder.
- Embedded JAR files are not deleted when console program runs normally to completion. This has been fixed.
- JAR files are extracted even during service installation/uninstallation. Although this is harmless, it is unnecessary and has been removed.
- When loading an invalid ICO or BMP file, a ton of error messages is displayed. This has been fixed.
- Console apps do not obey the single instance option. This has been fixed.
- When running console apps with GUI windows, embedded JAR files may not be deleted. This has been fixed.
- Previously the application locale is set to system default instead of user default, which may cause a problem when the user locale is different from the system locale. This problem has been fixed.
- Added new property nativej.csidl.local.appdata that points to the path identified by CSIDL_LOCAL_APPDATA.
- Added new property nativej.csidl.appdata that points to the path identified by CSIDL_APPDATA.
- Added support for BEA WebLogic JRockit JDK/JRE.
- Version information can now be added to the generated EXE.
- The "Browse" button for project icon has been added.
- The icon path will be automatically optimized into a relative path if it is in the same directory as the project file.
- In the previous version, if both stdout and stderr of a GUI executable are redirected to "None", an internal error will popup (though the application will still continue to run). This has been fixed.
- We identified a few cases where a Java program running as a Win32 service may hang during startup if the application is large and takes a long time to load. This has been fixed.
- Previously, if an environment variable involved in variable substitution contains a very long string (> 260 characters), the executable will crash. This has been fixed.
- Updated JVM options verification algorithm to avoid flagging certain valid options as invalid.
- Generated service will exit when user logs out. This has been fixed.
- Updated copyright notice.
- Improved registration code verification logic.
- The executables generated by V4.5.0 to V4.5.2 broke compatibility with Win9x/ME. This has been fixed.
- Executable path is now reflected in nativej.exe.path instead of java.exe.path to avoid potential compatibility issues with Sun's properties.
- nativejc now returns 0 on success, or -1 on failure to better integrate with third-party build tools.
- nativejc now supports verbose mode via the -v switch.
- Executable path is now reflected in the java.exe.path property.
- Console window was not displayed for console services configured to interact with the desktop. This has been fixed.
- Ctrl-Break did not generate thread dump for console services configured to interact with the desktop. This has been fixed.
- If the splash screen was configured to hide when application displayed a window, and a JVM error occurred, the error detail window was not brought to the foreground. This has been fixed.
- Added support for JDK/JRE V5.0 (JVM V1.5).
- Added extra syntax checks for JVM options, classpath and embedded JAR files during entry.
- Added option to always delete embedded JAR files when EXE terminates.
- Added redirection of stdout/stderr to popup message box (for GUI applications) or event log (for Win32 services).
- Added option to allow Win32 services to interact with desktop.
- Previously, if the total length of the classpath is longer than 1024 characters, the generated executable will fail when run. This has been fixed.
- Previously, an executable with embedded jar files will crash when a second instance is launched. This has been fixed.
- Added up/down re-ordering buttons in the JVM search order window.
- Added finer control of JVM search order.
- Added button to run executable directly after EXE generation.
- Output version-related warning messages during EXE generation.
- Output extraction location of embedded JAR files during EXE generation.
- Previously, when the second instance of an executable with embedded jar files is run, an error message will be displayed (although the program will continue to run). This has been fixed.
- Generated executables have been enhanced to display startup/operational errors from the JVM such as insufficient memory, hotspot errors etc.
- System.exit() will now be trapped and handled accordingly, so there is no need to avoid them in your Java code. Recommendations for avoiding System.exit() have also been removed from the help file.
- Previously, NativeJ may interact incorrectly with a native Java splash screen. This has been fixed.
- Added frequently asked questions to help file.
- Previously, if a referenced environment variable is not present during substitution, the generated executable will crash. This has been fixed.
- Added new registration system.
- Added XP visual style and icons.
- Added "New Project Wizard" to simplify project creation for new users.
- Added ability to embed JAR/ZIP files in generated executables.
- Added ability to specify initial process priority.
- Added ability to specify service dependencies.
- Added ability to redirect stdout/stderr to external log files.
- Added compression of generated executables.
- Required fields are now highlighted in red.
- Project icon is no longer required. If none is specified, the default icon is used.
- The size of the "JVM DLL" and "JVM options" text fields were wrong, resulting in the apparent inability to move to the end of the text field. This has been fixed.
- In this release, generated executables no longer verify the existence of each directory/file in the classpath. This conforms to the behaviour of the java.exe launcher, and allows for optional directories/files to be specified in the classpath.
- Fixed issue in classpath environment variable substitution when the variable contains leading and ending quotes.
- Fixed tab order for some panels.
- Added support for multiple private Java runtimes.
- The working directory can now be set to the current directory for programs which must perform processing on files in the directory where it is started.
- Added AppOptions parameter to the application configuration file. This parameter allows you to specify the arguments to be passed to the Java application at runtime.
- Changed shortcut for "Exit" command from Ctrl-X to Ctrl-E because Ctrl-X is used for text editing.
- Updated help file to make it clearer on what we should do when copying the JRE, and how the final directory structure should look like.
- Added more search sequences for JVM, so now you can specify to use the bundled JRE only if a suitable JRE is not already installed on the target machine. This is useful if the bundled JRE is located on a slower medium, so as the CDROM.
- Added ability to look for private JVM DLL and classpath modules relative to the working directory. Previously, search for the private JVM DLL and classpath modules are always relative to the executable directory.
- Added ability to specify an application configuration file so that certain parameters can be dynamically read from the configuration file when the executable is run. Currently only JVM options is supported in the configuration file.
- When a console program is run as a service and allowed to interact with the desktop, the console output is not enabled. This has been fixed.
- When a working directory is specified, the "user.dir" property is not updated. This has been fixed.
- When the splash screen is configured to be removed as soon as the Java application displays its first window, it does so even when the window is not completely displayed on screen. This has been fixed.
- The "Allow multiple instances" parameter is inverted i.e. when checked, it denies multiple instances and vice-versa. This has been fixed.
- Splash screen feature is only enabled in registered versions. This has been fixed.
- Splash screen preview is not refreshed correctly under certain situations. This has been fixed.
- When the splash screen bitmap is larger than the preview control, the image will now be scaled and displayed proportionally within the preview control.
- When changing certain parameters, the changed status of the project is not updated. This has been fixed.
- Added ability to configure application working directory.
- Added ability to specify startup type and description for services.
- Added ability to call System.exit() to terminate services.
- You can now specify the search order for a suitable JVM. By default, NativeJ searches for a suitable JRE, followed by a suitable JDK. You can change the search order to look for the JDK first, then JRE. You can also restrict the search to the JRE or JDK only.
- Provision is now made for environment variable substitution in the JVM options and classpath. All tokens of the form %name% are substituted with the value of the corresponding environment variable found on the target machine. A special case is %JAVA_HOME%, which will always be substituted with the actual JDK/JRE base directory on the target machine.
- Besides JREs, the search for a suitable JVM is now extended to JDKs installed on the target machine as well.
- The help file is updated to include the JVM search strategy and version history.
- Besides searching for the current version of JRE (listed in HKLM\Software\JavaSoft\Java Runtime Environment\CurrentVersion), the generated EXE now automatically searches for all suitable JREs installed on the target machine (listed under HKLM\Software\JavaSoft\Java Runtime Environment\1.x).
- Added command-line version of NativeJ to integrate better into project build processes.
- Added native splash screen support for GUI apps.
- Major facelift of the user interface for a more modern look-and-feel.
- Under certain situations, when the help menu item or button is clicked, the help file is not displayed. This happens when the current directory is no longer the program directory eg. when you open a project file or icon file. It has been fixed.
- There is an off-by-one error in new projects such that the last message (ID 19) is missing. This error does not apply to existing projects. It has been fixed.
- A related error is that when saving new projects, an "Index out of bounds" exception occurs. This error does not apply to existing projects. It has been fixed.
- When running NativeJ in demo mode, the EXE generated will encounter a "Division by zero" exception under some circumstances. This has been fixed.
- This version is now branded under DobySoft instead of CTech Software.
- Added new registration system so that license key can be sent out faster via automated system.
- Changed project extension from .prj to .njp, and added project file association logic.
- Added drag-and-drop support for project files.
- Added toolbar.
- Added memory of recent projects.
- Added ability to customize/localize strings and messages in generated executables.
- Added ability to modify service install/uninstall commands.
- Added recursive search for .jar and .zip files within classpath directories.
- Documentation is now in .chm format.
- If executable runs as Win32 service, and the "-Xrs" option is not specified for the JVM, logging out will cause the service to terminate. This has been fixed.
- This version supports two license types: standard and professional.
- Generated executables had problems with Sun JDK 1.3.0 in some cases. This has been fixed.
- Setting the required JDK version field to > 1.2 causes generated executables to fail to run. This has been fixed.
- Center window on screen upon startup.
- Fixed a service-related bug in the generated executable. Without this fix, some Java programs which do not require a startup argument may not be able to run as a service.
- Fixed a minor bug with the About dialog box.
- During generation of executable, if icon file is invalid, display a more meaningful message.