可能重复:
在 Objective-C Mac 应用程序中使用 Java 库,并将该应用程序放在 Mac App Store
我正在为 Objective-C 中的 Mac-Osx 应用程序开发。我有一个 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);
}