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.
- -l, --list
- List files that are translated.
- -v, --verbose
- Output messages about what the translator is doing.
- -Werror
- Make all warnings into errors.
- -h, --help
- Print this message.
Translation options
- --add-reads
- Option forwarded directly to the Java compiler (see javac help for details).
- --allow-inherited-constructors
- Don't issue compiler warnings when native code accesses inherited constructors.
- --build-closure
- Translate dependent classes if they are out-of-date (like
javac
does). - --class-properties
- Generates class properties for static variables and enum constants.
- --dead-code-report <file>
- Specify a ProGuard usage report for dead code elimination.
- --doc-comments
- Translate Javadoc comments into Xcode-compatible comments.
- --doc-comments-warnings
- Report warnings when translating Javadoc comments.
- -external-annotation-file <file>
- Specify the most common annotations that affect transpilation in a Java Annotation Index File (format defined by the Checker Framework).
- -g:none
- Do not generate debugging support.
- -g:relative
- Generate debugging support with relative paths.
- --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-properties
- Do not generate class properties for static variables and enum constants.
- --no-doc-comments
- Do not translate Javadoc comments into Xcode-compatible comments.
- --no-extract-unsequenced
- Don't rewrite expressions that would produce unsequenced modification errors.
- --no-nullability
- Do not generate Objective-C nullability annotations.
- --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.
- --wrapper-methods
- Generate Objective-C wrapper methods for constructors and static methods (default).
- --no-wrapper-methods
- Do not generate Objective-C wrapper methods for constructors and static methods. (J2ObjC generates C functions for these kinds of executables)
- --nullability
- Converts Nullable and Nonnull annotations to Objective-C annotations.
- --patch-module
- Option forwarded directly to the Java compiler (see javac help for details).
- --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.
- --reflection:{all,none,enum-constants,-enum-constants,name-mapping,-name-mapping}
- Generate or exclude specific support needed for Java reflection.
- --reserved-names <file>
- Avoids redefining identifiers present in system headers.
- --static-accessor-methods
- Generates accessor methods for static variables and enum constants.
- --strip-gwt-incompatible
- Removes methods that are marked with a
GwtIncompatible
annotation, 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).
- --no-strip-reflection
- Generate metadata needed for Java reflection.
- --swift-friendly
- Generate code that facilitates Swift importing (equivalent to --class-properties --nullability --swift-enum).
- --no-swift-enums
- Disables generation of Swift-like enum case names.
- --swift-naming
- Generates improved Swift interfaces.
- --system
- Option forwarded directly to the Java compiler (see javac help for details).
- -t, --timing-info
- Print time spent in translation steps.
- --timing-info:{all,total,none}
- 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 non-standard 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.