Primeiro, acesse a origem e desenvolvê-lo.
Para traduzir um arquivo de origem Java (Hello.java, por exemplo):
public class Hello {
public static void main(String[] args) {
System.out.println("hello, world");
}
}
j2objc Hello.javatranslating Hello.java Translated 1 file: 0 errors, 0 warnings
Para compilar o arquivo traduzido:
j2objcc -c Hello.mj2objcc é um script de wrapper que invoca seu compilador C (normalmente clang, também conhecido como LLVM, linguagem de programação C/C++/Objective-C da Apple) compilador (em inglês). Para criar o executável:
j2objcc -o hello Hello.o./hello Hellohello, world
j2objcc encaminha quaisquer opções especificadas para o compilador Objective-C.
Por exemplo, para traduzir e criar com símbolos de depuração, use a flag -g:
j2objcc -g -o hello Hello.m
Perguntas frequentes
Quando administro o j2objcc, ele reclama que "Foundation/Foundation.h" não foi encontrada.
Se a compilação falhar porque Foundation/Foundation.h não é encontrado, o problema é que o SDK do iOS não foi encontrado (é aí que o cabeçalho está).
- Verifique se o Xcode está instalado.
- Execute
xcode-select --installpara instalar as ferramentas de linha de comando. - Execute
xcodebuild -showsdks, que precisa mostrar pelo menos um SDK para OS X, iOS e e iOS Simulator. - Se isso falhar, exclua o aplicativo Xcode e pule para a etapa 1.
Quais sinalizações o j2objcc usa?
O script j2objcc é apenas um wrapper em torno do compilador do Objective-C, clang.
Execute man cc ou man clang para listar as opções.
Durante a compilação com j2objcc, os arquivos de cabeçalho (.h) do meu projeto não foram encontrados.
O compilador precisa saber o diretório em que estão os arquivos traduzidos.
usando -I <directory>. Então, se os arquivos foram gerados
j2objc -d foo/bar ...,
o comando j2objcc vai precisar de -Ifoo/bar. Se nenhum diretório de saída for
especificado no comando j2objc, adicione -I..
Como executar no Windows ou no Linux?
J2ObjC é uma ferramenta do iOS para desenvolvimento no Mac OS X. Não é possível compilar qualquer código traduzido, porque requer um SDK OS X ou iOS da Apple, que exige que os SDKs sejam usados apenas em Macs.
No entanto, como o tradutor J2ObjC é Java puro, a tradução pode ser feita no
outros sistemas. No Linux, o script j2objc deve funcionar inalterado. Janelas
usar requer o CygWin ou a invocação de Java
diretamente. Para invocar o tradutor sem o script j2objc, use o
seguindo, em que J2OBJC_DIR é o diretório em que
O arquivo de distribuição J2ObjC foi descompactado:
java -Xbootclasspath:\lib\jre_emul.jar -jar J2OBJC_DIR\lib\j2objc.jar [j2objc-flags] [source files]