GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - google/j2objc: A Java to iOS Objective-C translation tool and runtime.

BranchesTags
Open more actions menu

Latest commit

 

History

6,259 Commits
6,259 Commits

Folders and files

NameName
Last commit message
Last commit date
.allstar
.allstar
 
 
.github/workflows
.github/workflows
 
 
.idea
.idea
 
 
annotations
annotations
 
 
build_defs
build_defs
 
 
cycle_finder
cycle_finder
 
 
doc
doc
 
 
examples
examples
 
 
guava
guava
 
 
inject/javax_inject
inject/javax_inject
 
 
java_deps
java_deps
 
 
jre_emul
jre_emul
 
 
jsr305
jsr305
 
 
junit
junit
 
 
make
make
 
 
protobuf
protobuf
 
 
scenelib
scenelib
 
 
scripts
scripts
 
 
testing
testing
 
 
translator
translator
 
 
tree_shaker
tree_shaker
 
 
xalan
xalan
 
 
.bazelrc
.bazelrc
 
 
.bazelversion
.bazelversion
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
AUTHORS
AUTHORS
 
 
BUILD
BUILD
 
 
CONTRIBUTING.md
CONTRIBUTING.md
 
 
INSTALL
INSTALL
 
 
LICENSE
LICENSE
 
 
MODULE.bazel
MODULE.bazel
 
 
MODULE.bazel.lock
MODULE.bazel.lock
 
 
Makefile
Makefile
 
 
README.md
README.md
 
 

Repository files navigation

J2ObjC: Java to Objective-C Translator and Runtime

Project site: https://j2objc.org
J2ObjC blog: https://j2objc.blogspot.com
Questions and discussion: https://groups.google.com/group/j2objc-discuss

What J2ObjC Is

J2ObjC is an open-source command-line tool from Google that translates Java source code to Objective-C for the iOS (iPhone/iPad) platform. This tool enables Java source to be part of an iOS application's build, as no editing of the generated files is necessary. The goal is to write an app's non-UI code (such as application logic and data models) in Java, which is then shared by web apps (using GWT), Android apps, and iOS apps.

J2ObjC supports most Java language and runtime features required by client-side application developers, including exceptions, inner and anonymous classes, generic types, threads and reflection. JUnit test translation and execution is also supported.

J2ObjC is currently beta quality. Several Google projects rely on it, but when new projects first start working with it, they usually find new bugs to be fixed. If you run into issues with your project, please report them!

What J2ObjC isn't

J2ObjC does not provide any sort of platform-independent UI toolkit, nor are there any plans to do so in the future. We believe that iOS UI code needs to be written in Objective-C, Objective-C++ or Swift using Apple's iOS SDK (Android UIs using Android's API, web app UIs using GWT, etc.).

J2ObjC cannot convert Android binary applications. Developers must have source code for their Android app, which they either own or are licensed to use.

Requirements

  • JDK 21
  • Mac workstation or laptop
  • OS X 15.6.1 or higher
  • Xcode 16.3 or higher

License

This library is distributed under the Apache 2.0 license found in the LICENSE file. The protocol buffers library is distributed under the same BSD license as Google's protocol buffers. See its README and LICENSE.

Running on GNU/Linux

To build and run on GNU/Linux, install the Darling project, then following its Compile and Run a Program example. Please note that j2objc is only supported on iOS/macOS.

Artifact Signatures

This project publishes some artifacts through Maven Central with a groupId of com.google.j2objc. These artifacts are currently signed with [the following PGP/GPG key] (https://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC3259D20DAEC4ACE6D57CC83340B090F727518D8):

---------
pub   ed25519 2025-08-13 [SC] [expires: 2028-08-12]
      C3259D20DAEC4ACE6D57CC83340B090F727518D8
uid           [ultimate] Thomas Ball <[email protected]>
sub   cv25519 2025-08-13 [E] [expires: 2028-08-12]

Older artifacts are signed with the following PGP/GPG keys:

pub   rsa2048 2023-01-10 [SC] [expires: 2025-01-09]
      EB1B3DE71713C9EC2E87CC26EE92349AD86DE446
uid           [ unknown] Thomas Ball <[email protected]>
sub   rsa2048 2023-01-10 [E] [expires: 2025-01-09]
pub   rsa2048 2015-09-25 [SC]
      B801E2F8EF035068EC1139CC29579F18FA8FD93B
uid           [ unknown] Tom Ball <[email protected]>
sub   rsa2048 2015-09-25 [E]

About

A Java to iOS Objective-C translation tool and runtime.

j2objc.org

Resources

Readme
License

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

6.0k stars

Watchers

277 watching

Forks

997 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.