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