J2ObjC
J2ObjC is a free, open-source command-line tool from Google that translates Java source code into Objective-C for iOS.
What J2ObjC is
J2ObjC is a free, open-source command-line tool from Google that translates Java source code into Objective-C for iOS. It is intended to let developers share non-UI code, including application logic and data models, across web, Android, and iOS apps. It supports Java features such as exceptions, inner and anonymous classes, generics, threads, and reflection, and can translate and execute JUnit tests. Its distribution includes static libraries for Guava, JUnit, Mockito, Protocol Buffers, and other Java libraries or Android utility classes. J2ObjC does not provide a platform-independent UI toolkit; iOS interfaces need to use Objective-C, Objective-C++, or Swift with Apple's iOS SDK. Developers must have source code they own or are licensed to use; the tool cannot convert Android binary applications. Requirements include a Mac workstation or laptop, macOS 15 or higher, Xcode 16 or higher, and JDK 21 or higher. Developers handle memory management using Objective-C reference counting.
Good
- Free and open source under Apache 2.0.
- Supports many Java language features.
- Can translate and execute JUnit tests.
- Includes several Java library static libraries.
Watch out
- Requires a Mac, macOS 15, Xcode 16, and JDK 21.
- Does not provide a platform-independent UI toolkit.
- Developers remain responsible for memory management.
- Cannot convert Android binary applications.
Who it suits
J2ObjC suits developers who want to reuse Java non-UI code in iOS apps and can work with the listed Mac, Xcode, and JDK requirements. It is not for converting Android binaries or sharing a cross-platform UI.
Verdict
J2ObjC can help developers reuse Java logic in iOS projects when source code is available. Its lack of a shared UI toolkit and its specific Mac toolchain requirements are important constraints.
Plans and prices
From J2ObjC's own pricing page, checked 7 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Free and open source | Free | Apache 2.0 license · Mac workstation with macOS 15 or higher, Xcode 16 or higher, and JDK 21 or higher |
The facts
Each one read from J2ObjC's own pages, with the date it was checked.
What it does
- Artifact signing
- The project says some Maven Central artifacts under groupId com.google.j2objc are signed with a published PGP/GPG key.checked 7 Oct 2026
- Build integration
- The j2objcc command-line script wraps clang and uses the iOS SDK, while Xcode projects need J2ObjC-specific linker settings.checked 7 Oct 2026
- Java support
- It supports Java features including exceptions, inner and anonymous classes, generics, threads, and reflection.checked 7 Oct 2026
- Libraries
- The distribution includes static libraries for Guava, JUnit, Mockito, Protocol Buffers, and other Java libraries or Android utility classes.checked 7 Oct 2026
- Memory management
- J2ObjC uses Objective-C reference counting, and its documentation says developers are responsible for memory management and can introduce leaks.checked 7 Oct 2026
- Requirements
- The listed requirements are a Mac workstation or laptop, macOS 15 or higher, Xcode 16 or higher, and JDK 21 or higher.checked 7 Oct 2026
- Shared code
- It is intended to let developers write non-UI code such as application logic and data models in Java for use across web, Android, and iOS apps.checked 7 Oct 2026
- Source code required
- J2ObjC cannot convert Android binary applications; developers need source code they own or are licensed to use.checked 7 Oct 2026
- Support
- The project points users to its issue tracker, Stack Overflow j2objc tag, and Google Groups discussions for help.checked 7 Oct 2026
- Test support
- J2ObjC supports translating and executing JUnit tests.checked 7 Oct 2026
- UI limit
- It does not provide a platform-independent UI toolkit, and its documentation says iOS UI should use Objective-C, Objective-C++, or Swift with Apple's iOS SDK.checked 7 Oct 2026
- What it does
- J2ObjC is an open-source command-line tool from Google that translates Java source code to Objective-C for iOS.checked 7 Oct 2026
Where it runs
- Linux limitation
- The project states that J2ObjC is supported only on iOS and macOS, while GNU/Linux use requires the Darling project.checked 7 Oct 2026
Alternatives to J2ObjC
- 1
JSweet
Free planOpen sourceAndroidiOSWebAPI7.7Free plan - 2

SWC
Free planAndroidWebAPILinux7.1Free plan - 3
Transcrypt
Free planWebLinuxmacOSSelf-hosted6.7Free plan - 4
TypeScript Playground
Free planWeb6.6Free plan - 5
Google Web Toolkit
Free planWebExtensionLinuxmacOS6.5Free plan - 6
Haxelib
Free planAPILinuxmacOSWindows6.5Free plan
