jpackage: support for environment variables in --java-options

Michael Hall mik3hall at gmail.com
Tue Sep 1 21:22:00 UTC 2020


> 
>> Is there a way to pass values from environment variables when using
>> --java-options?
>> 
>> It would be nice to be able to write something like this:
>> --java-options "-DmyAppData=$HOME/.myData"
>> 
>> (Instead of using the $ sign, another notation may be more appropriate, in
>> order to not conflict with macros such as $APPDIR or $ROOTDIR.)
> Although I don't think there is a problem conflicting with the existing macros for $ROOTDIR, $APPDIR, or $BINDIR, we may need something more exclusive that "$XXXX" since dollar sign may be a legitimate character in an existing argument or vm option ("-DPRICE=$10.50") or ("-DCURRENCY_TAG=$")
> 
> anyway, wouldn't this go a long way to alleviating the concerns of JDK-8250950 <https://bugs.openjdk.java.net/browse/JDK-8250950> ?
> 
> 
If I follow the referenced issue, after a quick browse, it wants to satisfy the need for different user memory specifications. It proposes doing this with a standalone configuration file that could override the one jpackage uses. So could be used for more general overrides.
You are now thinking environment variables could provide the override without the need for a second user/developer configuration file? 
I am not sure that works. Actually, I don’t think the environment variable settings would be very useful on OS X at all after considering this issue. 
On OS X applications get a default set of environment variables not dependent on user ones. 
Looking like this from an application of mine…

exec env
TMPDIR=/var/folders/dh/91wmrk0n6lzfmr4tjhjmcfp40000gn/T/
__CF_USER_TEXT_ENCODING=0x1F5:0x0:0x0y for 
HOME=/Users/mjh
SHELL=/bin/bash
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.sZlyFCZcWZ/Render
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.f11OdXASJN/Listeners
PATH=/usr/bin:/bin:/usr/sbin:/sbin
LOGNAME=mjh
DISPLAY=/private/tmp/com.apple.launchd.rN2uW3mk7s/org.macosforge.xquartz:0
XPC_SERVICE_NAME=us.hall.FastRGraalHP.35068
USER=mjh
XPC_FLAGS=0x0

My own settings from Terminal (.bash_profile) are more involved say for the PATH variable…

env | grep PATH
PATH=/Users/mjh/anaconda3/bin:/Users/mjh/anaconda3/condabin:/opt/ooRexx/bin:/usr/local/Cellar/watchman/4.9.0_3/bin:/Users/mjh/management/spark-2.4.3-bin-hadoop2.7/bin:/Users/mjh/management/apache-maven-3.6.1/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin
...

So I’m not sure passing things to the application at launch time by environment variable would work? At least OS X. If as I think the issue indicated you wanted a cross-platform solution.



More information about the core-libs-dev mailing list