Voglio creare un'applicazione nativa per Mac OS X utilizzando Cocoa + Objective C ma ho bisogno di collegarmi a un'origine dati proprietaria, e per questo, il proprietario dell'origine dati fornisce solo la libreria Java. Quindi ho bisogno di importare in qualche modo questa libreria Java nel mio progetto e chiamare le funzioni sulle sue classi Java (oppure creare java wrapper attorno a questa libreria e poi chiamare il mio wrapper da objective-C).Chiamare la libreria Java da Objective C su Mac
Ora, come posso fare questo? La ricerca rapida su google mi porta a JNI ma non ho trovato nessun articolo/tutorial valido (attuale). Avrei davvero bisogno di qualche articolo HOW TO, come caricare questa libreria java, avviare la VM se necessario e come creare oggetti java e richiamare le funzioni su di essi. Davvero qualcosa di semplice e posso spostarmi da lì. Grazie.
Giusto per chiarire, ripeto: VOGLIO chiamare le funzioni Java da Objective-C, NON voglio chiamare funzioni native da Java.
+1 per l'utilizzo di processi separati. Probabilmente sarà molto più semplice scrivere un servizio in Java che comunica con l'origine dati e con il tuo obiettivo -C App. –
Ciao Jeffrey, sì, ho visto quell'API Invocation, l'ho vista più da vicino.Questa idea dell'applicazione java e della mia app cacao che comunica tra le prese è abbastanza buona, ma preferirei iniziare questo java app in background quando la mia app di cacao non viene avviata come servizio per tutto il tempo, sai se è possibile qualcosa del genere? (ero uno sviluppatore .net da 6 anni, facevo mac roba solo per 4 mesi ora, quindi scusa se le mie domande sono stupide) – Michal
Non c'è alcun motivo per cui l'app Objective-C non può avviare l'app Java come un'applicazione ogni volta che è necessario (come startin g qualsiasi altro binario). Potresti quindi utilizzare i socket per comunicare con esso. Potresti persino implementare un comando "Fine" per terminarlo da solo quando hai finito, in questo modo funziona solo quando ne hai bisogno. Dovrai posticipare alcuni secondi prima di collegarti ad esso, java è piuttosto lento per avviare le app. –