Primero, obtén la fuente y crearla.
Para traducir un archivo fuente Java (por ejemplo, Hello.java):
public class Hello {
public static void main(String[] args) {
System.out.println("hello, world");
}
}
j2objc Hello.java
translating Hello.java Translated 1 file: 0 errors, 0 warnings
Para compilar el archivo traducido:
j2objcc -c Hello.m
j2objcc es una secuencia de comandos wrapper que invoca tu compilador C. (normalmente Clang, también conocida como LLVM, C/C++/Objective-C de Apple compilador). Para compilar el ejecutable, haz lo siguiente:
j2objcc -o hello Hello.o
./hello Hello
hello, world
j2objcc reenvía las opciones que especifiques para el compilador de Objective-C.
Por ejemplo, para traducir y compilar con símbolos de depuración, usa la marca -g
:
j2objcc -g -o hello Hello.m
Preguntas frecuentes
Cuando ejecuto j2objcc
, se indica que "Foundation/Foundation.h". no se encuentra.
Si la compilación falla porque no se encuentra Foundation/Foundation.h, el problema es que no se encontró el SDK de iOS (que es donde está el encabezado).
- Asegúrate de tener instalado Xcode.
- Ejecuta
xcode-select --install
para instalar las herramientas de línea de comandos. - Ejecuta
xcodebuild -showsdks
, que debería mostrar al menos un SDK para OS X, iOS. y simulador de iOS. - Si eso falla, borra la aplicación de Xcode y ve al paso 1.
¿Qué marcas toma j2objcc
?
La secuencia de comandos j2objcc
es solo un wrapper del compilador Objective-C, clang.
Ejecuta man cc
o man clang
para ver una lista de sus opciones.
Cuando compilas con j2objcc
, no se pueden encontrar los archivos de encabezado (.h) de mi proyecto.
El compilador debe conocer el directorio donde residen los archivos traducidos.
usando -I <directory>
. Entonces, si los archivos se generaron con
j2objc -d foo/bar ...
,
entonces el comando j2objcc
necesita -Ifoo/bar
. Si no se indicó ningún directorio de salida,
especificado en el comando j2objc
, debes agregar -I.
.
¿Cómo lo ejecuto en Windows o Linux?
J2ObjC es una herramienta de iOS diseñada para desarrollar en Mac OS X. No puedes compilar cualquier código traducido porque requiere un OS X o un SDK de iOS de Apple, requiere que el SDK solo se use en Macs.
Sin embargo, dado que el traductor J2ObjC es Java puro, la traducción se puede realizar en
con otros sistemas. En Linux, la secuencia de comandos j2objc
debería funcionar sin cambios. Windows
requiere CygWin o invocar a Java
directamente. Para invocar el traductor sin la secuencia de comandos j2objc, usa el
a continuación, donde J2OBJC_DIR
es el directorio en el que
Se descomprimió el archivo de distribución J2ObjC:
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]