重複の可能性:
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);
}