-1
package keylogger;

public class TestKeys {
private static int i = 0;
private native void setWinHook();
private native void unregisterWinHook();

public static void main(String args[]) {

    TestKeys o = new TestKeys();

    System.loadLibrary("MyHook"); // load the library that registers the hook

    Runnable r = new Runnable() {
        @Override
        public void run() {
            System.out.println("After the call to System.loadLibrary");
        }
    };
    new Thread(r,"new thread").start();  
  }
}

プログラムを起動するdllと、ロードされて動作します。run methodただし、 of内のステートメントnew threadは出力されません。何故ですか ?Javaスレッドが起動しないのはなぜですか?dllコードはすぐには返されません。実際、それが戻ることができる方法はありません。

と :

プログラムがステートメントに遭遇すると、新しいスレッドが開始されSystem.loadLibraryますか?

4

1 に答える 1

2

プログラムがステートメントSystem.loadLibraryを検出すると、新しいスレッドが開始されますか?

ライブラリが初期化セクションで作成しない限り、そうではありません。

PSjoin()スレッドを使用すると、動作は変わりますか?

于 2012-05-30T07:11:45.553 に答える