[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/10 00:48 / Filesize : 168 KB / Number-of Response : 668
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

★お前らJavaはJNIで組もうぜ★



412 名前:409 mailto:sage [05/02/12 06:25:57 ]
>>410
例えば下記のサイトのコードを流用したとします.
ttp://www.ki.rim.or.jp/~kuro/Java/JNI/JNI-07.html

public class HelloVM { static void hello() { System.out.println("HelloVM(Java) executed.\n");} }

#include "stdafx.h"
#include "jni.h"

int hoge(void)
{
// 前略
nResult = JNI_GetDefaultJavaVMInitArgs(&vm_args);
if ( nResult == 0 ) { printf("Success to JNI_GetDefaultJavaVMInitArgs vm.\n");}
else { printf("Fail to JNI_GetDefaultJavaVMInitArgs vm.\n"); }
// 中略
nResult = JNI_CreateJavaVM(&jvm, (void**)&env, &vm_args);
if ( nResult == 0 ) { printf("Success to create vm.\n"); }
else { printf("Fail to create vm. [%ld]\n", nResult); return 0; }
// 後略
return 0;
}

int main(void){ for(int i=0;i<3;i++){ hoge(); } return0; }

こんな感じのコードを実行すると,ループの初回は HelloVM(Java) executed. が出力されます.
しかしループの2回目は Fail to create vm. が出力されます.
このことからJVMの作成に失敗したと考えました.
# 当然ですが上記のようなループを含まないJNIのプログラムは正常に動作します.

現在は AttachCurrentThread と DetachCurrentThread が,
関連するのではないかと思っているのですが間違っていますでしょうか.






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<168KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef