openjdk 9 in ios - any sample xcode project or any sample using JavaLauncher interface?
Grigory Ptashko
grigory.ptashko at gmail.com
Sat Mar 5 21:02:30 UTC 2016
In the RunJava project I did not find any links to *.jimage files.
How can it be that they are not bundled?
I can understand that this might somehow work in the simulator.
But when building the app for a device where will java runtime take the classes from?
> On 5 марта 2016 г., at 23:46, Bob Vandette <bob.vandette at oracle.com> wrote:
>
> The jimage files are the new JDK 9 Modular Runtime Image files for the Java runtime classes.
> They replace the existing rt.jar and other runtime jar files.
>
> https://bugs.openjdk.java.net/browse/JDK-8061971
>
> The complete list of changes coming in JDK 9 can be found here:
>
> http://openjdk.java.net/projects/jdk9/
>
> Bob.
>
>> On Mar 5, 2016, at 3:13 PM, Grigory Ptashko <grigory.ptashko at gmail.com> wrote:
>>
>> Hello Bob.
>>
>>
>> I see. That’s a very useful sample. Thank you very much.
>>
>> But before I get started may I ask you what are the *.jimage files are?
>> I see there are no rt.jar or tools.jar anymore.
>>
>> I’m a long time jdk7 user so I’m not aware of the latest innovations in jdk..
>>
>> Maybe some documentation links?
>>
>> Thank you.
>>
>>> On 5 марта 2016 г., at 1:46, Bob Vandette <bob.vandette at oracle.com> wrote:
>>>
>>> Hi Grigory,
>>>
>>> We have been pretty focused on just keeping up with the evolving JDK 9 sources
>>> and haven’t yet had enough time to devote to getting samples into the repository
>>> or document the project structure requirements.
>>>
>>> In general we require the same JRE structure that you’d see on non Mobile platforms
>>> to be maintained with one exception. All static libraries are only used when the project is
>>> being built and should not be marked for inclusion in the application package.
>>>
>>> Here’s an old Xcode project which I published before we integrated the JavaLauncher into
>>> the mobile repo. It will at least give you an idea how the Java binaries are packaged.
>>>
>>> http://cr.openjdk.java.net/~bobv/mobile/j1/xcode/RunJava.tar.gz
>>>
>>> If you’d like to convert this to use the JavaLauncher, you should take a look at JavaLauncher.h
>>> which described the JavaLauncher Framework interface.
>>>
>>> Here’s an example of how it is used:
>>>
>>> static void javaLauncherCallback(const char *exception_msg, int error_code, void *app_data)
>>> {
>>> NSLog(@"HelloWorld::javaLauncherCallback: Received exception.");
>>> NSLog(@"HelloWorld::javaLauncherCallback: Exception msg: %@.",
>>> [NSString stringWithUTF8String: exception_msg]);
>>> }
>>>
>>> static JavaArgs *java_args = NULL;
>>>
>>> @implementation HelloWorld
>>>
>>> +(void)initialize
>>> {
>>> if (java_args == NULL) {
>>> java_args = [[[JavaArgs alloc] init] retain];
>>> java_args.callback = javaLauncherCallback;
>>> }
>>> }
>>> +(void)createJavaVM
>>> {
>>> [JavaLauncher createJavaVM:java_args];
>>> }
>>> +(void)callJava
>>> {
>>> [JavaLauncher performSelectorInBackground:@selector(callJava:)
>>> withObject:java_args];
>>> }
>>>
>>> @end
>>>
>>> Let me know if you have any questions.
>>> Bob.
>>>
>>>
>>>> On Mar 4, 2016, at 4:57 PM, Grigory Ptashko <grigory.ptashko at gmail.com> wrote:
>>>>
>>>> Hello.
>>>>
>>>> Does anyone have any examples on how to use java from jdk9 on ios?
>>>> I’ve built the jdk and jre, found the Java Launcher objective-c interface.
>>>> But I cannot understand how can I use them in the xcode project.
>>>>
>>>> I can add the JavaLauncher.framework to my project and include JavaLauncher.h.
>>>> But what libraries should I link my target against?
>>>>
>>>> Here’s the jre tree. What am I supposed to do with all these files in terms of adding them to
>>>> my xcode project? All the *.a and *.jimage files?
>>>>
>>>> ├── bin
>>>> │ └── unpack200
>>>> ├── conf
>>>> │ ├── logging.properties
>>>> │ ├── management
>>>> │ │ ├── jmxremote.access
>>>> │ │ ├── jmxremote.password.template
>>>> │ │ ├── management.properties
>>>> │ │ └── snmp.acl.template
>>>> │ ├── net.properties
>>>> │ ├── security
>>>> │ │ ├── java.policy
>>>> │ │ └── java.security
>>>> │ └── sound.properties
>>>> ├── lib
>>>> │ ├── amd64
>>>> │ │ ├── jli
>>>> │ │ │ ├── libjli.a
>>>> │ │ │ └── libjli.symbols
>>>> │ │ ├── jvm.cfg
>>>> │ │ ├── libfreetype.a.6
>>>> │ │ ├── libj2gss.a
>>>> │ │ ├── libj2gss.symbols
>>>> │ │ ├── libj2pcsc.a
>>>> │ │ ├── libj2pcsc.symbols
>>>> │ │ ├── libj2pkcs11.a
>>>> │ │ ├── libj2pkcs11.symbols
>>>> │ │ ├── libjaas_unix.a
>>>> │ │ ├── libjaas_unix.symbols
>>>> │ │ ├── libjava.a
>>>> │ │ ├── libjava.symbols
>>>> │ │ ├── libjimage.a
>>>> │ │ ├── libjimage.symbols
>>>> │ │ ├── libmanagement.a
>>>> │ │ ├── libmanagement.symbols
>>>> │ │ ├── libnet.a
>>>> │ │ ├── libnet.symbols
>>>> │ │ ├── libnio.a
>>>> │ │ ├── libnio.symbols
>>>> │ │ ├── libsunec.a
>>>> │ │ ├── libsunec.symbols
>>>> │ │ ├── libunpack.a
>>>> │ │ ├── libunpack.symbols
>>>> │ │ ├── libverify.a
>>>> │ │ ├── libverify.symbols
>>>> │ │ ├── libzip.a
>>>> │ │ ├── libzip.symbols
>>>> │ │ └── minimal
>>>> │ │ ├── Xusage.txt
>>>> │ │ ├── libjvm.a
>>>> │ │ └── libjvm.symbols
>>>> │ ├── classlist
>>>> │ ├── java.base.symbols
>>>> │ ├── modules
>>>> │ │ ├── appmodules.jimage
>>>> │ │ ├── bootmodules.jimage
>>>> │ │ └── extmodules.jimage
>>>> │ ├── psfont.properties.ja
>>>> │ ├── psfontj2d.properties
>>>> │ ├── security
>>>> │ │ ├── US_export_policy.jar
>>>> │ │ ├── blacklisted.certs
>>>> │ │ ├── cacerts
>>>> │ │ └── local_policy.jar
>>>> │ └── tzdb.dat
>>>>
>>>> Please, can anyone shed some light on it?
>>>>
>>>> Thank you.
>>>>
>>>> --
>>>> Best regards,
>>>> Grigory Ptashko
>>>>
>>>> +7 (916) 1489766
>>>> grigory.ptashko at gmail.com
>>>> facebook.com/GrigoryPtashko
>>>>
>>>
>>
>>
>> --
>> Best regards,
>> Grigory Ptashko
>>
>> +7 (916) 1489766
>> grigory.ptashko at gmail.com
>> facebook.com/GrigoryPtashko
>>
>
--
Best regards,
Grigory Ptashko
+7 (916) 1489766
grigory.ptashko at gmail.com
facebook.com/GrigoryPtashko
More information about the mobile-dev
mailing list