j2objc

The j2objc tool translates specified Java source files into either Objective-C or Objective-C++ sources for use in an iOS application.

j2objc [ options ] file1.java ...

The following options are supported. For options that take a path, multiple directories and jar files are separated by a ':', like is done with the java and javac commands.

Common options

-sourcepath <path>
Specify where to find input source files.
-classpath <path>
Specify where to find user class files.
-d <directory>
Specify where to place generated Objective-C files.
-encoding <encoding>
Specify character encoding of source files (UTF-8 default).
-source <release>
Provide source compatibility with specified release.
-g
Generate debugging support.
-q, --quiet
Do not print status messages.
-v, --verbose
Output messages about what the translator is doing.
-Werror
Make all warnings into errors.
-h, --help
Print this message.

Translation options

--batch-translate-max=<n>
The maximum number of source files that are translated together. Batching speeds up translation, but requires more memory.
--build-closure
Translate dependent classes if they are out-of-date (likejavacdoes).
--dead-code-report <file>
Specify a ProGuard usage report for dead code elimination.
--disallow-inherited-constructors
Issue compiler warnings when native code accesses inherited constructors.
--doc-comments
Translate Javadoc comments into Xcode-compatible comments.
--no-extract-unsequenced
Don't rewrite expressions that would produce unsequenced modification errors.
--generate-deprecated
Generate deprecated attributes for deprecated methods, classes and interfaces.
-J<flag>
Pass a Java <flag>, such as-Xmx1G, to the system runtime.
--mapping <file>
Add a method mapping file.
--no-class-methods
Don't emit class methods for static Java methods (static methods are always converted to functions).
--no-package-directories
Don't create directories for Java packages when generating files.
--no-segmented-headers
Generates headers with guards around each declared type. Useful for breaking import cycles.
--nullability
Converts Nullable and Nonnull annotations to Objective-C annotations.
--prefix <package=prefix>
Substitute a specified prefix for a package name.
--prefixes <file>
Specify a properties file with prefix definitions.
--preserve-full-paths
Generates output files with the same relative paths as the input files.
-processor <class1>[,<class2>...]
Names of the annotation processors to run; bypasses default discovery process.
-processorpath <path>
Specify where to find annotation processors.
--static-accessor-methods
Generates accessor methods for static variables and enum constants.
--strip-gwt-incompatible
Removes methods that are marked with aGwtIncompatibleannotation, unless its value is known to be compatible.
--strip-reflection
Do not generate metadata needed for Java reflection (note: this will significantly reduce reflection support).
--swift-friendly
Generate code that facilitates Swift importing.
-t, --timing-info
Print time spent in translation steps.
-use-arc
Generate Objective-C code to support Automatic Reference Counting (ARC).
-use-reference-counting
Generate Objective-C code to support iOS manual reference counting (default).
-version
Version information.
-x language
Specify what language to output. Possible values are objective-c (default) and objective-c++.
-X
Print help for nonstandard options.

Nonstandard options

-Xbootclasspath:<path>
Boot path used by translation (not the tool itself).
-Xlint
Enable all warnings.
-Xlint:none
Disable all warnings not mandated by the Java Language Specification.
-Xlint:-xxx
Disable warning xxx, where xxx is one of the warning names supported for -Xlint:xxx, below.
-Xlint:cast
Warn about unnecessary and redundant cast expressions.
-Xlint:deprecation
Warn about the use of deprecated items.
-Xlint:dep-ann
Warn about items that are documented with an @deprecated Javadoc comment, but do not have a @Deprecated annotation.
-Xlint:empty
Warn about empty statements.
-Xlint:fallthrough
Check switch blocks for fall-through cases and provide a warning message for any that are found.
-Xlint:finally
Warn about finally clauses that cannot complete normally.
-Xlint:rawtypes
Warn about unchecked operations on raw types.
-Xlint:serial
Warn about missing serialVersionUID definitions on serializable classes.
-Xlint:static
Warn about serial methods called on instances.
-Xlint:unchecked
Give more detail for unchecked conversion warnings that are mandated by the Java Language Specification.
-Xlint:varargs
Warn about unsafe usages of variable arguments (varargs) methods, in particular, those that contain non-reifiable arguments.
-Xno-jsni-warnings
Warn if JSNI (GWT) native code delimiters are used instead of OCNI delimiters.

See Also

j2objcc