Linking to JavaRuntimeSupport framework

Mike Swingler swingler at apple.com
Wed Jan 26 12:33:57 PST 2011


On Jan 26, 2011, at 11:39 AM, David Kocher wrote:

> On 26.01.2011, at 17:17, Mike Swingler wrote:
> 
>> On Jan 26, 2011, at 12:23 AM, David Kocher wrote:
>> 
>>> On 26.01.2011, at 00:28, Mike Swingler wrote:
>>> 
>>>> On Jan 25, 2011, at 2:43 PM, Henri Gomez wrote:
>>>> 
>>>>> 2011/1/25 David Kocher <dkocher at cyberduck.ch>:
>>>>>> (Resending this to the list as it did not appear after 24h)
>>>>>> 
>>>>>> Looking at the binary build available from the openjdk-osx-build [1], the universal libjava.dylib is linking against /System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/JavaRuntimeSupport. Is this intended and if so why? The equivalent library from the i386 build does not.
>>>>>> 
>>>>>>> libjava.dylib:
>>>>>>>   @rpath/libjava.dylib (compatibility version 1.0.0, current version 1.0.0)
>>>>>>>   @rpath/libjvm.dylib (compatibility version 1.0.0, current version 1.0.0)
>>>>>>>   @rpath/libverify.dylib (compatibility version 1.0.0, current version 1.0.0)
>>>>>>>   /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 550.42.0)
>>>>>>>   /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration (compatibility version 1.0.0, current version 293.6.0)
>>>>>>>   /System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/Versions/A/JavaRuntimeSupport (compatibility version 1.0.0, current version 1.0.0)
>>>>>>>   /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)
>>>>> 
>>>>> I guess it because it's now build with Apple VM 1.6.0
>>>> 
>>>> Yes, this is intentional. JavaRuntimeSupport.framework is a special framework where we export API exclusively for the use of Java runtimes (like OpenJDK). Our proprietary Java SE 6 and J2SE 5.0 have also linked against it for almost three years, so it's known battle-tested code.
>>>> 
>>>> We will also be making more additions to the JavaRuntimeSupport.framework soon to support additional functionality we will be introducing to the OpenJDK builds.
>>> 
>>> I understand now that the difference is because the non universal builds available are from the BSD port instead. But linking against a private framework in the macosx-port makes it a show stopper to for applications targeting the MAS I presume.
>> 
>> JavaRuntimeSupport.framework is a public sub-framework of the JavaVM.framework. It's all API, and it's all public (that is kinda the point).
>> 
>> Regards,
>> Mike Swingler
>> Java Engineering
>> Apple Inc.
> 
> Thanks for the clarification. I was mixing things up. JavaRuntimeSupport.framework is indeed part of the public JavaVM.framework. Can you assure that this framework will be in the default install of subsequent major OS X releases (10.7 and onward)?

I cannot comment specifically about Mac OS X 10.7, however it is our intention for the additions made to the /System/Library/Frameworks folder by Java updates to be standard API on Mac OS X.

> The Java deprecation notice never made it clear to me, what parts will be optional installs. I would assume that only  /System/Library/Java/JavaVirtualMachines/* falls into this category then.

This is not a bad assumption to make. Hopefully I can discuss more at a later time.

My best,
Mike Swingler
Java Engineering
Apple Inc.


More information about the macosx-port-dev mailing list