How to handle file open requests on MacOS
Mike Hearn
mike at plan99.net
Mon Jan 5 21:30:33 UTC 2015
Done: https://javafx-jira.kenai.com/browse/RT-39763
My app works fine without admin privs so I just changed the registry keys
in the ISS to be the local user reg keys.
On Mon, Jan 5, 2015 at 9:25 PM, Danno Ferrin <danno.ferrin at oracle.com>
wrote:
> set the exe to install "System Wide" .. -Bwin.exe.systemWide=true via the
> CLI. This will cause the application to be installed with admin privleges.
>
> Can you open a bug for this (just cut and paste the e-mail) so it will
> work for local installs?
>
> On Jan 5, 2015, at 1:09 PM, Mike Hearn <mike at plan99.net> wrote:
>
> OK, then I might switch (or maybe not, as my current solution works ...)
>
> BTW I noticed that the javapacker ISS changes put the file association
> entries into HKEY_CLASSES_ROOT. Doing this results in an error half way
> through setup if you don't run the installer with admin privs. The current
> installer setup runs just fine with lowest privs, so it'd be perhaps nicer
> to put the registry entries under HKEY_CURRENT_USER\SOFTWARE\Classes
> instead:
>
> http://support.microsoft.com/kb/257592
>
> On Mon, Jan 5, 2015 at 8:59 PM, Danno Ferrin <danno.ferrin at oracle.com>
> wrote:
>
>> This code works inside of a JavaFX application too, just tried it
>> locally.
>>
>> You may be thinking of an older iteration of the apple application
>> listener classes or perhaps the native level of the code.
>>
>> On Jan 5, 2015, at 11:04 AM, Mike Hearn <mike at plan99.net> wrote:
>>
>> Scene Builder doesn't do it this way - AFAICT you're only allowed to have
>> one such event handler registered with the OS and JavaFX already registers
>> one ... it just doesn't expose the resulting Java events via public API.
>>
>> On Mon, Jan 5, 2015 at 6:50 PM, Danno Ferrin <danno.ferrin at oracle.com>
>> wrote:
>>
>>> Oh, yes. Mac has it's own Applicaiton class. Here's the imports for
>>> the second file...
>>>
>>> import com.apple.eawt.AppEvent;
>>> import com.apple.eawt.Application;
>>> import java.io.File;
>>> import java.util.List;
>>> import javax.swing.SwingUtilities;
>>>
>>> The com.apple.eawt stuff is shipped with Oracle JRE and JDK, but like I
>>> said in my previous mail you need to pass a flag to the compiler to turn
>>> off it's index and read the jar.
>>>
>>> The JavaDoc has gone MIA though --
>>> https://bugs.openjdk.java.net/browse/JDK-8027638 but you can peruse the
>>> source code to see the details, it's all OpenJDK -
>>> http://hg.openjdk.java.net/jdk8u/jdk8u40/jdk/file/564bca490631/src/macosx/classes/com/apple/eawt
>>>
>>> On Jan 5, 2015, at 10:43 AM, Mike Hearn <mike at plan99.net> wrote:
>>>
>>> > What is Application.getApplication() here? The JavaFX Application
>>> class does not have a setOpenFileHandler method. Is that a Mac-specific API?
>>> >
>>> > It's too bad that 8u40 won't have this. Being able to easily open
>>> double clicked files is pretty basic. Perhaps post 8u40 the JFX team could
>>> go through Scene Builder and identify everywhere it relies on internal APIs
>>> or custom magic and suck it into the core API, as then you'd have
>>> confidence that an app of real complexity can be done entirely with
>>> documented stuff.
>>>
>>>
>>
>>
>
>
More information about the openjfx-dev
mailing list