Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

nocturne

Kaiser

Dabei seit: 06.01.2005

Beiträge: 1 167

 

1 Zum Seitenanfang

Mittwoch, 25. Juli 2007, 14:14

JNI - Alles klappt, bis zur bindung.

Hi,

Sobald MinGW mir die DLL fertig erstellt hat, gibt es Probleme mit der Bindung in die Klasse:
Exception in thread "main" java.lang.UnsatisfiedLinkError: Link.hello()V
at Link.hello(Native Method)
at Link.main(Link.java:12)


Hier das minimalistische Beispiel:

Zitat

create.bat
d:\Java\jdk1.6.0_02\bin\javac.exe Link.java
d:\Java\jdk1.6.0_02\bin\javah.exe Link
c:\MinGW\bin\gcc -c -I D:\Java\jdk1.6.0_02\include -I D:\Java\jdk1.6.0_02\include\win32 -DBUILD_DLL Library.c
c:\MinGW\bin\gcc -shared -o Library.dll -Wl,--out-implib,libtstdll.a Library.o
del Library.o
del libtstdll.a
del Link.h
d:\Java\jdk1.6.0_02\bin\java.exe Link
@pause

Zitat

Library.c
#include "Link.h"
#include <stdio.h>

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



Zitat

Link.java
class Link {

public native void hello();
static {
System.loadLibrary("Library");
}

public static void main(String[] args)
{
System.out.println("Gestartet");
Link link = new Link();
link.hello();
}
}



Was habe ich denn übersehen??

Problem gelöst!

die .bat war falsch.

Zitat


d:\Java\jdk1.6.0_02\bin\javac.exe Link.java
d:\Java\jdk1.6.0_02\bin\javah.exe Link
c:\MinGW\bin\gcc -Wl,--kill-at -I"d:\Java\jdk1.6.0_02\include" -I"d:\Java\jdk1.6.0_02\include\win32" -shared Library.c -o Library.dll
del Library.o
del libtstdll.a
del Link.h
d:\Java\jdk1.6.0_02\bin\java.exe Link
@pause

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »nocturne« (25. Juli 2007, 16:37)