If your app need to use environment variables to configure something for 
runtime it is probably best to have your own stub launcher and launch a 
sub-process.  

It can be tricky to have a smooth user experience with that though. You would 
want to avoid an extra icon in the dock/start bar. You don’t want the other 
process to show up as “java.exe”, etc.  That’s the benefit of trying to solve 
this in the launcher created by jpackage. 

Scott

> On Sep 2, 2020, at 11:59 AM, Michael Hall <mik3h...@gmail.com> wrote:
> 
> 
> 
>> On Sep 2, 2020, at 9:04 AM, Andy Herrick <andy.herr...@oracle.com> wrote:
>> 
>> Yes - environment variables are not a good answer for this, not just mac, 
>> but even on windows the env variables at run time are different if launched 
>> from a shell (the env variables of that shell) vs. when run from a shortcut 
>> (the system-wide or user env variables set in Control Panel or Settings 
>> dialog).
>> 
>> JEP-343 says jpackage should be "a tool for packaging self-contained Java 
>> applications.", so an app packaged with jpackage should run on a machine 
>> without requiring any other files to be installed .  That should not 
>> prohibit optional configuration from being discovered on a machine and used 
>> to tune the application or it's use of Java.
>> 
>> Normally, any such discovery can be done by the application itself, except 
>> where it is the the java options that tune the java vm itself, and that is 
>> why we are considering mechanisms (such as expanding environment variables 
>> at runtime, or reading an installed configuration file of some kind)
>> 
> It’s difficult and was difficult with java applications on OS X from the 
> start to have an application support anything like command line invoking with 
> parameters.
> 
> Maybe add standalone options for the command that update an existing 
> application bundle? Of course then there would probably be signing and other 
> issues.
> 
> Again, for LSEnvironment on OS X I think it wouldn’t be terribly difficult to 
> implement. You could handle it something like it appears file associations 
> work. Although, I haven’t done anything with those yet. Then just modify the 
> Info.plist. I have had code that does that in the past. XML right?
> 
> In the past I have had need to add environment variables to my application to 
> interface it with the R language. Also  debugging AppleScript related at one 
> point required environment variables. It was very much an OS X only java app 
> at one point in time.
> Recently I had problems interfacing to Anaconda python that it seemed like 
> being able to set the PATH variable might resolve. Although my own attempts 
> to set the variables to get it to work failed. What did work was command line 
> shell invoking the application. Like myApp.app/Contents/MacOS/myApp from 
> Terminal. That was for someone else’s application.
> I decided just to set a alias for that in .bash_profile for my own use and 
> not try to figure what exactly the Finder launched application needed to make 
> it work.
> So these are some use cases where environment variables were involved. A 
> feature to support them could occasionally be nice. 
> 
> 
> 
> 
> 
> 
> 

Reply via email to