openjdk 9 in ios - any sample xcode project or any sample using JavaLauncher interface?

Grigory Ptashko grigory.ptashko at gmail.com
Sat Mar 5 20:13:06 UTC 2016


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



More information about the mobile-dev mailing list