2011-12-24 5 views
5

私は今この問題を研究していますが、まだ明確な答えは得られていません。私は最終的にアプリケーションストアに置くつもりのMac OSXアプリケーションを書いていますが、Objective-Cでそのほとんどを書くことができますが、Javaでしか使えないライブラリからメソッドを呼び出す必要があります。私は2つの質問があります:私が読んだものから、Objective-C MacアプリケーションでJavaライブラリを使ってMac App Storeにそのアプリケーションを置く

  1. を、(Invocation APIを使用して)、アップルは、MacのアプリでのJavaの使用は非推奨にもかかわらず、(これを行うための唯一の許容方法ですJNIのように思えるし、それ本当に受け入れられるわけではありません)。これを行う他の方法はありますか?

  2. AppleはMac App StoreでJavaアプリケーションを許可していませんが、Javaクラスを組み込むためにJNIを使​​用するほとんどのネイティブアプリを許可しますか? JNIを使​​ってJava VMをパッケージ化することができるので、Appleが将来JavaでOSXを停止することは問題ではないようです。

あなたの洞察を高く評価します。ありがとう。

+0

JNI – zneak

+1

@ zneak - そうではありません。あなたはちょうど外に出て、stdoutをリダイレクトできます。私はあなたが何をしようとしているのか理解しています。言い換えれば - それは話題にはなりません*そして*完全には正しいとは言いません – Steve

+0

フォローアップとして、それはtho私はGCJのようなものでネイティブマシンコードに必要なJavaコンポーネントをコンパイルできるかもしれません。誰でもこれについて何か知っていますか? – Andrew

答えて

3

@Andrew - あなたがやっていることが非常に簡単であれば(そしてjava.awtまたはjava.swingを使用するライブラリには触れていない)、GCJ/could/work。私は本当にそれをお勧めしません。私が言っているのは、GCJが「新しい」Javaの機能の多くをサポートしていないためで、あなたのJavaコードが古いバージョンのJDKをターゲットにして書かれていなければ、コンパイルの問題にぶつかります。 eclipse.anythingなどの外部の第三者機関でコンパイルすると、大きな頭痛に冒されます。

私は既にあなたがjavaで書いたコードを持っていて、そのコードをより良い(そしてネイティブな)objc UIへのサービスとして利用したいと思います。その場合、正直なところ、あなたは弾丸を噛んで、サービス層のobjcコードベースを作成するだけで、はるかに多くの成功とはるかに頭痛を感じるでしょう:(

もちろんネイティブ(Javaのofcで書かれた)クラウドベースの分散サービス層のためのシンクライアントとしてのMac Ui。しかし、私はアップルが彼らのアプリストアでシンクライアントとウェブベースのサービスをどのように考えるのかは不明だ。

+0

答えてくれてありがとう、クリス。それは私が思っていたものとほとんど同じです。残念ながら、私が必要とするJavaライブラリは私によって書かれたものではなく、obj-Cで書き直すことはできません。私はC/C++/obj-Cで同じことをする別のライブラリを探します。 – Andrew

関連する問題