Add System Property to Suppress Native Library Loading in NativeView.java #27
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a system property-based mechanism to disable native library loading in NativeView.java. It adds a check for the system property noa.native.disable, allowing users to suppress loading native libraries when required.
🔹 Changes & Fixes:
✅ Implemented System Property Check:
If -Dnoa.native.disable=true is set, the native library loading is skipped.
✅ Fixed Integer Parsing Issues:
Replaced Integer.valueOf() with Integer.parseInt() to prevent unnecessary autoboxing.
✅ Improved Exception Handling:
Wrapped System.load() in a try-catch block to avoid crashes if the library is missing or fails to load.
✅ Ensured Cross-Platform Support:
Adjusted native library path detection for Windows, Linux, and MacOS.
🔹 How to Use the Suppression Feature?
To disable native library loading, run the application with:
bash
-Dnoa.native.disable=true
Example usage:
bash
java -Dnoa.native.disable=true -jar yourApp.jar
With this flag enabled, the system will skip loading native libraries.
🛠️ Why This Change?
This change provides better control over native dependencies and ensures smoother execution in environments where native libraries might not be necessary or available.