IOS – How to the company get our custom Java software to run on the iPad

developmentiosipadjava

I have small company and we have custom software that is written in Java.

I am planning to buy a tablet. Originally I intended to get an Android tablet, but I am really impressed by the resolution of the new iPad screen.

The 1M dollar question is: Is there any way to make Java programs run on the iPad? Can I compile them or get an unofficial Java Virtual Machine that will run them on Apple's tablet?

Best Answer

You won't be able to take your existing Java binaries and run them on the iPad, since there is no Java Virtual Machine (JVM) on the iPad, nor can you install one. Apple doesn't permit third-party language runtimes or plugins to be installed on iOS.

Jailbreaking your device may provide you with more freedom in that regard, but I'll assume you're not interested in that. (If you are, see questions here tagged .)

The only remaining potential solution not involving jailbreak is to adapt and compile your software into a native iOS application. This will take some work.

Since you mentioned your software is custom software, you should have the source code. With original source code and some not-so-trivial effort & expertise, it is possible to port your custom software to a native iOS application. A natively-compiled, self-contained iOS application doesn't require a runtime to be present on the device.

There are a couple of ways to go about doing this:

  • The orthodox way to develop iOS applications is to use Apple's own Xcode & Objective-C. Your Java code can be translated, by a competent developer, into an Objective-C implementation for iOS. This is a considerable amount of work, yet is likely to yield the best end product.

  • There also exists third-party development tools to enable apps to be created with other languages/frameworks, such as Java, C#, ActionScript, JavaScript – to name a few. One such framework for Java in particular is Particle Code. I have no experience with this – I suggest more research if you want to follow this path.

While the second approach allows more code re-use, there is still likely a considerable amount of development involved to adapt the application to a mobile form-factor.

For follow-up questions about developing for iOS, please refer to Stack Overflow.