> jpackage app laucnher will expand environment variables in .cfg files. > > Previously jpackage app launcher only replaced `$APPDIR`, `$BINDIR`, and > `$ROOTDIR` tokens with the corresponding path values. With this patch, any > environment variable can be expanded. The syntax is shell-like > `$ENV_VAR_NAME` or `${ENV_VAR_NAME}`. If `$ENV_VAR_NAME` syntax is used, the > variable name stops at the first character outside of `[a-zA-Z0-9_]` > character range. If `${ENV_VAR_NAME}` syntax is used, the variable name stops > at the first `}` character after `${` substring. E.g: > | String | Variables | Variable Values | Expanded String | Note | > | -------- | ------- |------- |------- |------- | > | <pre>Welcome $USER!</pre> | <pre>USER</pre> | <pre>USER=John</pre> | > <pre>Welcome John!</pre> || > | <pre>Welcome $USER!</pre> | <pre>USER</pre> | <pre>not set</pre> | > <pre>Welcome $USER!</pre> | Unset variables are not expanded. | > | <pre>Welcome $USER2</pre> | <pre>USER2</pre> | <pre>USER2=John</pre> | > <pre>Welcome John!</pre> || > | <pre>Welcome ${USER}2!</pre> | <pre>USER</pre> | <pre>USER=John</pre> | > <pre>Welcome John2!</pre> || > | <pre>Welcome $USER-2!</pre> | <pre>USER</pre> | <pre>USER=John</pre> | > <pre>Welcome John-2!</pre> || > | <pre>Welcome ${USER-2}!</pre> | <pre>USER-2</pre> | > <pre>USER-2=John</pre> | <pre>Welcome John!</pre> | `USER-2` is likely to be > an invalid env variable name, but jpackage launcher is not validating names. | > > `$` character combination prevents variable expansion: > | String | Variables | Variable Values | Expanded String | > | -------- | ------- |------- |------- | > | <pre>Hello \$A! Bye $B</pre> | B | <pre>B=John</pre> | <pre>Hello $A! Bye > John</pre> | > | <pre>Hello \${A}! Bye $B</pre> | B | <pre>B=John</pre> | <pre>Hello ${A}! > Bye John</pre> | > > `\` character combination escapes ``: > | String | Variables | Variable Values | Expanded String | > | -------- | ------- |------- |------- | > | <pre>Hello \\\$A! Bye $B</pre> | A, B | <pre>A=Ana</pre><pre>B=John</pre> > | <pre>Hello \\Ana! Bye John</pre> | > > If `` character is not followed by another `` character or `$` character, it > is interpreted as a regular character: > | String | Expanded string | > | -------- | ------- | > |<pre>a\\b\\c</pre>|<pre>a\\b\\c</pre>| > > > Expansion is non-recursive: > | String | Variables | Variable Values | Expanded String | Note | > | -------- | ------- |------- |------- |------- | > | <pre>Hello $A!</pre> | A | <pre>A=$B</pre><pre>B=John</pre> | <pre>Hello > $B</pre> | Variable "B" wi...
Alexey Semenyuk has updated the pull request incrementally with one additional commit since the last revision: Better wording ------------- Changes: - all: https://git.openjdk.org/jdk/pull/23923/files - new: https://git.openjdk.org/jdk/pull/23923/files/f9dbf5d2..5d2599d3 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=23923&range=05 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23923&range=04-05 Stats: 8 lines in 1 file changed: 0 ins; 0 del; 8 mod Patch: https://git.openjdk.org/jdk/pull/23923.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/23923/head:pull/23923 PR: https://git.openjdk.org/jdk/pull/23923