0

重複の可能性:
Objective-C Mac アプリで Java ライブラリを使用し、そのアプリを Mac App Store に置く

Objective-C で Mac-Osx アプリケーションを開発しています。いくつかの独自クラスとそれに関連するメソッドを含む 1 つの JAR ファイルがあります。これらのメソッドを Objective-C プログラム/コード/アプリケーションで使用したいと考えています。

どうやってやるの ?

これに関するどんな助けも立派です。

ありがとう..!

以下のコードでは、Line (*env)->GetJavaVM(env, pvm); で不正なアクセスが発生しています。JNI_GetDefaultJavaVMInitArgsは非推奨 (警告) として表示されますoutCreatedVMCountは常に 0 です。

- (JNIEnv *)getJNIEnv
{
    static JNIEnv* sAppKitEnv = NULL;
    static JavaVM *sJVM = NULL;

    if (sAppKitEnv == NULL) {       
        if (sJVM == NULL) {
            JavaVM *createdJVMs;
            jint outCreatedVMCount;
            if (JNI_GetCreatedJavaVMs(&createdJVMs, sizeof(createdJVMs), &outCreatedVMCount) == 0) {
                if (outCreatedVMCount > 0) {
                    sJVM = createdJVMs;
                }
            }
        }

        // If we didn't find one, we're stuck.
        if (sJVM != NULL) {
            (*sJVM)->AttachCurrentThreadAsDaemon(sJVM, (void **)&sAppKitEnv, nil);
        }
    }

    return sAppKitEnv;
}

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{

    [self performSelector:@selector(initvm) withObject:nil afterDelay:0.2];

}

-(void) initvm
{
    JavaVM **pvm;
    //void **pJNIEnv;
    JavaVMInitArgs *args;
    JNI_GetDefaultJavaVMInitArgs(&args);
    JNIEnv *env=[self getJNIEnv];
    (*env)->GetJavaVM(env, pvm);
}
4

1 に答える 1

0

Cocoa と Java の間にはブリッジがありますが、非推奨であり、十分に文書化されていません。おそらく、それはまだ動作します。詳細はこちらをご覧ください

幸運を!それがどのように機能するかをすべて教えてください:)

于 2012-09-12T06:38:35.240 に答える