Currently, JDK 7 uses JRSCopyOSName() so that the difference between "Mac OS X"
and "Mac OS X Server" can be distinguished.
I am recommending the use of .contains("OS X") to more robustly determine if
you are on the OS X platform, and still retain the ability to distinguish
between client and server in cases where it is important to do so.
Regards,
Mike Swingler
Apple Inc.
On Jun 19, 2012, at 11:53 AM, Phil Race wrote:
> On 6/19/2012 11:33 AM, Artem Ananiev wrote:
>>
>> On 6/19/2012 8:49 PM, Phil Race wrote:
>>> startsWith("Mac") is what we use in FX and I don't see a problem with it
>>> and its surely more reliable to type and efficient than contains("OS X");
>>> If its meant to be targeted to a specific version that could break if
>>> there's an OS XI ..
>>> And startsWith("Win") is a common pattern. So I don't agree with the advice
>>> anyway.
>>
>> startsWith("Mac") vs contains("OS X") was already discussed on the
>> macosx-port-dev alias. The problem with the former is that starting from
>> 10.8, OS name will be just "OS X", without "Mac" prefix.
>>
>> The code in java_props_macosx.c makes me believe we set "os.name" tp the
>> value returned by JRSCopyOSName() from JavaRuntimeSupport framework. Is it
>> possible to get "OS X 10.8" from that function?
>
> This sounds like a JDK bug.
> We really must not let that drive changing the "os.name" property else we are
> completely at the whim of whatever a platform vendor's marketing dept thinks
> is
> the flavour of the day.
>
> -phil.
>
>>
>> Thanks,
>>
>> Artem
>>
>>> -phil.
>>>
>>>
>>> On 6/19/2012 9:36 AM, Sergey Bylokhov wrote:
>>>> Hi,Phil.
>>>>
>>>> According to these CR macosx check should be: .contains("OS X").
>>>> http://monaco.sfbay.sun.com/detail.jsf?cr=7147461
>>>> http://monaco.sfbay.sun.com/detail.jsf?cr=7130404
>>>>
>>>> On 19.06.2012 20:13, Phil Race wrote:
>>>>> 7124536: [macosx] PrintServiceLookup.lookupDefaultPrintService()
>>>>> return null
>>>>> http://cr.openjdk.java.net/~prr/7124536.7u6/
>>>>>
>>>>> -phil.
>>>>
>>>>
>>>
>