Hi,
   I want to use IrDA on linux & java.
   but, I have a problem in making native method. 
This is very easy test program, bat don't work.
My jdk is jdk-libc5-1.1.5-v7

I did following commands.

    1.javac HelloWorld.java
    2.javah -jni HelloWorld
    3.gcc -fPIC -I/usr/local/java/1.1.5/include 
        -I/usr/local/java/1.1.5/include 
        -c HelloWorldImp.c
    4.gcc -shared -Wl,-soname,libHelloWorld.so.1 -o libHelloWorld.so.1.0
          HelloWorld.o
    5.ln -s libHelloWorld.so.1.0 libHelloWorld.a

following is the source and ERROR message.
Does anyone have some further information or hints for me what to do ?
----
Takeru Tamayama [EMAIL PROTECTED]
 
/**********************************************
 * HelloWorld.java 
 *********************************************/
public class HelloWorld {
  static {System.loadLibrary("HelloWorld"); }
  public native void displayHelloWorld();
  public static void main(String argv[]){
    new HelloWorld().displayHelloWorld();
  }
}

/**********************************************
 * HelloWorld.h ( javah -jni HelloWorld )
 *********************************************/
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class HelloWorld */

#ifndef _Included_HelloWorld
#define _Included_HelloWorld
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     HelloWorld
 * Method:    displayHelloWorld
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld
  (JNIEnv *, jobject);

#ifdef __cplusplus
}
#endif
#endif

/******************************************************
 * HelloWorldImp.c
 ******************************************************/
#include<jni.h>
#include "HelloWorld.h"
#include<stdio.h>

JNIEXPORT void JNICALL Java_HelloWorld_displayHelloWorld
(JNIEnv *env, jobject obj)
{
  printf("Hello World !\n");
  return;
}


SIGSEGV   11*  segmentation violation
    stackbase=0xbffff4c0, stackpointer=0xbffff3c8

Full thread dump:
    "Finalizer thread" (TID:0x40650c50, sys_thread_t:0x41391f04, state:R) prio=1
    "Async Garbage Collector" (TID:0x40650c98, sys_thread_t:0x41370f04, state:R) prio=1
    "Idle thread" (TID:0x40650b88, sys_thread_t:0x4134ff04, state:R) prio=0
    "Clock" (TID:0x4064d088, sys_thread_t:0x4132ef04, state:CW) prio=12
    "main" (TID:0x4064d0b0, sys_thread_t:0x81ac6b8, state:R) prio=5 *current thread*
        java.lang.Runtime.loadLibrary(Runtime.java)
        java.lang.System.loadLibrary(System.java)
        HelloWorld.<clinit>(HelloWorld.java:2)
Monitor Cache Dump:
    java.lang.Class@1080364568/1080770232: owner "main" (0x81ac6b8, 1 entry)
    java.lang.Runtime@1080364536/1080770480: owner "main" (0x81ac6b8, 1 entry)
Registered Monitor Dump:
    Thread queue lock: <unowned>
    Name and type hash table lock: <unowned>
    String intern lock: <unowned>
    JNI pinning lock: <unowned>
    JNI global reference lock: <unowned>
    BinClass lock: <unowned>
    Class loading lock: <unowned>
    Java stack lock: <unowned>
    Code rewrite lock: <unowned>
    Heap lock: <unowned>
    Has finalization queue lock: <unowned>
    Finalize me queue lock: <unowned>
    Monitor IO lock: <unowned>
    Child death monitor: <unowned>
    Event monitor: <unowned>
    I/O monitor: <unowned>
    Alarm monitor: <unowned>
        Waiting to be notified:
            "Clock" (0x4132ef04)
    Monitor registry: owner "main" (0x81ac6b8, 1 entry)
Thread Alarm Q:

IOT trap/Abort















Reply via email to