-
Improved and simplified version checking code.
-
Corrected file type in DLL resource file.
-
Switched to FPC
UNICODESTRINGS
mode.
- Fixed bug in
jvm.dll
path detection.
-
Added
GetJavaJVMPath
function. -
Added
--javadll
(-d
) option to GetJavaInfo utility. -
Updated all sample code to add
GetJavaJVMPath
function.
-
Added Microsoft JDK registry detection.
-
Minor tweaks.
- Added 'Eclipse Adoptium' registry detection. (For some reason, Adoptium changed the registry location, again).
-
Added adoptium.net 'Eclipse Foundation' and 'Semeru' registry detection (adoptium.net is replacing adoptopenjdk.net).
-
Minor tweaks.
-
Updated string-reading registry code to account for strings that might be missing a null terminator (to prevent a potential, but very low probability, buffer overflow).
-
Adjusted code formatting.
-
Compiled using FPC 3.2.2.
-
Wrote markdown documentation for GetJavaInfo.exe.
-
Minor tweaks.
- Minor tweaks and minor corrections to documentation.
-
Added the
IsJavaMinimumVersion
function. -
Added GetJavaInfo.exe that implements the JavaInfo.dll code as a console (command-line) utility. Run
GetJavaInfo -h
to display the help information. -
Enhanced the
JavaInfo.iss
Inno Setup sample script to use theIsJavaMinimumVersion
function. -
Added sample PowerShell script to illustrate using .NET P/Invoke to call the JavaInfo.dll functions.
-
Fixed: Registry search now returns the latest version across all registry searches instead of stopping after one subkey.
-
Fixed: Unhandled exception in edge case where no registry subkeys present to enumerate.
-
Split registry searching code into separate functions to improve readability/maintenance.
-
Added AdoptOpenJDK registry key search.
-
Fixed buffer allocation/hang issue that could occur when searching the
Path
environment variable (regression bug from v0.0.0.2).
-
Updated search order to search
Path
before registry. -
Cleaned up registry search (removed redundant code and improved robustness and readability).
-
Updated/clarified documentation and fixed a couple of typos.
-
Updated license to less restrictive LGPL.
-
Changed search order to use environment variables first.
-
Added registry searches for IBM and Azul JDKs.
-
Changed
IsJava64Bit
function toIsBinary64Bit
function. The reason for this change is that it is useful to determine whether a binary (i.e., a.exe
or.dll
file) is 64-bit even when Java is not detected. For example, if theIsJavaInstalled
function returns 0 but an instance of Java is present, you can use theIsBinary64Bit
function to determine whether the Java instance is 64-bit if you know its path. An added benefit is that theIsBinary64Bit
function works on any Windows binary, not just Java binaries. -
Included Inno Setup (https://www.jrsoftware.org/isinfo.php) sample script (
JavaInfo.iss
).
Misread Windows documentation on SearchPathW
API function and allocated potentially insufficient buffer size. Fixed.
Initial version.