Fix NetBeans launch failure on unix shell for arguments with quotes et al #7908
+100
−16
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.
Issue
When NetBeans is launched on *nix shell with arguments that contain special characters like quotes, spaces, $ and backticks, then it may fail or not receive the arguments correctly.
The launcher scripts are:
The cause is due to incomplete escaping of the special characters before quoting the argument.
Examples:
--jdkhome "$HOME/openjdk's jdkhome"
--jdkhome '/home/user/tools/jdk "23"'
--jdkhome /c/Program\ Files/Java/jdk
--userdir "/mnt/user's macbook pro/Users/user/Library/Application Support/NetBeans"
-Dnetbeans.extra.dirs="nb-dev\$old/extras/plugin1:nb-dev\$old/extras/plugin2:ext/My Plugins/quo\"'d"
Further, a discrepancy is created between the argument strings passed on a Windows host (using the launcher exe/dll) and *nix hosts.
Fix
eval
with arguments single-quoted and parameter substitution within it being double-quoted.nbexec
similar to thenbcode
scriptnbexec
.