wo finde ich javah

Status
Nicht offen für weitere Antworten.

JCrypter

Mitglied
Hi,

das ist glaub ich mein erster post hier :)

ich wollt mal anfangen mich mit jni zu beschäftigen und hab damit begonnen ein tutorial zu bearbeiten. Dabei stoße ich jedoch sehr schnell an meine grenzen...

Wo find eich die javah?

Ich hab mir eine build.xml laut anweisung des Turorials geschrieben. Wenn ich das jetzt ausführe, bekomme ich aber einen fehler: BUILD FAILED
C:\Programme\eclipse GMF\c\w321\JNI Test\Build.xml:3: Can't load javah


Was muss ich wie einstellen?
Muss ich irgendwie den PATH einstellen?


Wenn ihr weitere Infromationen brauchtsagt nur becheid.
Danke für eure Hilfe!

Crypi
 

André Uhres

Top Contributor
"javah" ist im "bin" Verzeichnis deines JDK. Z.B.: C:\Program Files\Java\jdk1.5.0_09\bin
Weiss grad net wie du das in Eclipse einbinden musst.
 

JCrypter

Mitglied
so jdk ist instaliert.

classpath ist gesetzt jetzt sollte es gehen.


tuts aber nicht.


build.xml:
Code:
<project default="cc" basedir=".">
  <target name="javah">
    <javah classpath="bin" outputFile="strlen.h" verbose="yes">
      <class name="jw.jni.StrLen" />
    </javah>
  </target>
  <target name="cc" depends="javah">
    <exec dir="c:/cygwin/bin/" executable="c:/cygwin/bin/gcc">
      <arg value="-mno-cygwin" />
      <arg value="-I" />
      <arg value="C:/Programme/Java/jdk1.6.0/include" />
      <arg value="-I" />
      <arg value="C:/Programme/Java/jdk1.6.0/include/win32" />
      <arg value="-shared" />
      <arg value="-Wl,--add-stdcall-alias" />
      <arg value="-o" />
      <arg value="${basedir}/strlen.dll" />
      <arg value="${basedir}/strlen.c" />
    </exec>
  </target>
</project>

ich führe mein build.xml aus und bekomme:
3:Can't load javah

kann mir jemand sagen was falsch ist?


Crypi
 

MatthiasKnorr

Aktives Mitglied
Hi,

versuch mal die Umgebungsvariable JAVA_HOME zu setzen.
In die Console:
Code:
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0
oder über Systemeinstellung in XP.

Der Ordner jdk1.6.0 enthält das "bin" Verzeichnis.

Grüße,
Matthias
 

JCrypter

Mitglied
hmm soweit so gut jetzt bekomme ich nen anderen fehler :)

also schonmal einen schritt weiter ;)

Error: Class jw.jni.StrLen could not be found.

also die build.xml liegt direkt im projekt.
die klassen sind im package jw.jni

weswegen findet er die nicht? müsste doch eigentlich stimmen.

Crypi
 

MatthiasKnorr

Aktives Mitglied
Wichtig ist das "basedir" in der build.xml.
Nehmen wir an das wäre
Code:
c:\projekt
dann müßte deine Klasse in
Code:
c:\prokekt\bin\jw\jni
liegen.
Tut sie das?

Grüße,
Matthias
 

JCrypter

Mitglied
toll ich hab meine erste dll!

und meinen ersten fehler mit einer dll! :(


Exception in thread "main" java.lang.UnsatisfiedLinkError: jw.jni.StrLenDemo.strlen(Ljava/lang/String;)I
at jw.jni.StrLenDemo.strlen(Native Method)
at jw.jni.StrLenDemo.main(StrLenDemo.java:7)

ich versteh absolut nicht was er mir sagen will...

und ich führe folgendes programm aus:
Code:
package jw.jni;

public class StrLenDemo
{
  public static void main( String[] args)
  {
    System.out.println( strlen("2003 UB313") );
  }
  
  static {
	    System.loadLibrary( "strlen" );
	  }
	  public static   native   int strlen( String s );
}

und es liegt alles im gleichen verzeichnis
 

MatthiasKnorr

Aktives Mitglied
Scheint so, als würde die VM die DLL erfolgreich laden aber dann ein Problem haben.
Kannst du mal bitte deine StrLen Datei posten?

Grüße,
Matthias
 

JCrypter

Mitglied
das ist die strlen.c

Code:
#include <jni.h> 
#include "StrLen.h" 
#include <stdio.h> 
JNIEXPORT jint JNICALL Java_com_javatutor_jni_StrLen_strlen( 
                            JNIEnv *env, jclass clazz, jstring s ) 
{ 
  printf( "Hallo Java-Freunde!\n" ); 
  return 0; 
}

das ist die strlen.java
Code:
package jw.jni;

public class StrLen
{
  static {
    System.loadLibrary( "strlen" );
  }
  public static   native   int strlen( String s );
}

oder meintest du noch eine andere datei?
 

MatthiasKnorr

Aktives Mitglied
Versuchs mal damit:

Code:
#include <jni.h> 
#include "StrLen.h" 
#include <stdio.h> 
JNIEXPORT jint JNICALL Java_jw_jni_StrLen_strlen( JNIEnv *env, jclass clazz, jstring s ) 
{ 
  printf( "Hallo Java-Freunde!\n" ); 
  return 0; 
}

Grüße,
Matthias
 

JCrypter

Mitglied
das hat den gleichen fehler verursacht.

was könnte ich den für fehler gemacht haben? ich hab mich iegentlich ans tutorial gehalten.

galileo

ach das doch doof
 

MatthiasKnorr

Aktives Mitglied
Ich weiß. :)

Hast du die DLL wirklich neu generiert?
Wenns wirklich nicht hilft, versuch das Beispiel erstmal ohne Änderung zum Laufen zu bekommen.

Grüße,
MAtthias
 

MatthiasKnorr

Aktives Mitglied
Na du hast den Namen des Packages geändert. Im Original was es "com.javatutor.jni". Das hat Auswirkungen auf die DLL.

Lösch bevor du die build.xml Datei ausführst mal alle Datei die vorher generiert wurden, also *.class, *.h, *.dll.

Grüße,
Matthias
 

JCrypter

Mitglied
welche *.class meinst du?

ich hab das jetzt so gemacht wie im tutorial und krieg trotzdem die gleiche fehlermeldung.

ist doch richtig, dass ich mit StrLenDemo ein "run as" mache oder?

Crypi
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
berserkerdq2 Wo finde ich in der Java Api die Notation zu Threads bezüglich Synchronized? Java Basics - Anfänger-Themen 14
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
B ArrayIndexOutOfBoundsException, ich finde den Fehler nicht? Java Basics - Anfänger-Themen 10
A Kalender programmieren, ich finde meinen Fehler nicht. Java Basics - Anfänger-Themen 9
Z Montageberechnungs programm, finde leider den Fehler nicht Java Basics - Anfänger-Themen 13
S Finde den fehler nicht Java Basics - Anfänger-Themen 1
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
M Methoden Fehler und finde die Lösung nicht wirklich Java Basics - Anfänger-Themen 6
T Input/Output Leerzeilen in Ausgabe -> finde den Fehler nicht Java Basics - Anfänger-Themen 10
Z Finde den Fehler nicht ! Java Basics - Anfänger-Themen 3
X Finde die Files über FTP nicht Java Basics - Anfänger-Themen 4
T Wie finde ich passende Java Klassen & Methoden? Java Basics - Anfänger-Themen 4
S Compiler-Fehler Finde den Fehler nicht... Java Basics - Anfänger-Themen 4
L Methoden Finde Secquenz ineinem array Java Basics - Anfänger-Themen 12
S Compiler-Fehler error: ';' expected (finde Fehler nicht) Java Basics - Anfänger-Themen 10
O Verriegeln, aber wo? Finde den Client der zu schließem ist. Java Basics - Anfänger-Themen 0
D Code Fehlerhaft finde den Fehler nicht. Java Basics - Anfänger-Themen 1
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
R Finde den Fehler nicht Java Basics - Anfänger-Themen 4
A finde fehler nicht Java Basics - Anfänger-Themen 9
X StackOverflowError, finde den Fehler nicht Java Basics - Anfänger-Themen 5
M Methoden Fehler in Methode - Finde ihn nicht Java Basics - Anfänger-Themen 7
P Benötige Hilfe - finde Fehler nicht. Java Basics - Anfänger-Themen 3
J "ArrayIndexOutOfBoundsException", finde den Fehler schlicht nicht Java Basics - Anfänger-Themen 6
D Wo finde ich die OpenSource-Sources? Java Basics - Anfänger-Themen 5
V finde meinen Fehler nicht Java Basics - Anfänger-Themen 10
B Finde BUG nicht... Java Basics - Anfänger-Themen 8
L StackOverFlow, finde Grund nicht! Java Basics - Anfänger-Themen 5
M Ganz einfaches Beispiel, finde den Fehler aber nicht :( Java Basics - Anfänger-Themen 2
Z Problem mit Tutorial - Finde Kon.java nicht Java Basics - Anfänger-Themen 11
J Finde Fehler bei kleinem Programm nicht Java Basics - Anfänger-Themen 3
V Ganz kurze Java-Hilfe - Ich finde meinen Fehler nicht Java Basics - Anfänger-Themen 4
B Wie finde ich Exceptions? Java Basics - Anfänger-Themen 19
S Out of bounds exception. Finde den fehler nicht Java Basics - Anfänger-Themen 13
U finde fehler nicht! bitte um hilfe Java Basics - Anfänger-Themen 8
C ich finde den fehler nicht Java Basics - Anfänger-Themen 4
J Finde die Fehler nicht Java Basics - Anfänger-Themen 2
L Illegal Start of Type, wie finde ich den fehler Java Basics - Anfänger-Themen 4
M Finde Fehler nicht: NotSerializableException Java Basics - Anfänger-Themen 2
F Finde den Fehler nicht Java Basics - Anfänger-Themen 4
J class, interface, or enum expected - finde Fehler nicht. Java Basics - Anfänger-Themen 4
E Finde Error nciht Java Basics - Anfänger-Themen 3
U Finde den fehler nicht Java Basics - Anfänger-Themen 9
J Kann den fehler nicht finde!!! Java Basics - Anfänger-Themen 7
B Calculator Fehlermeldung ich finde aber nichts? Java Basics - Anfänger-Themen 2
S Finde den Fehler nicht/ verstehe Anweisung nicht Java Basics - Anfänger-Themen 12
S Finde den Fehler nicht ! Java Basics - Anfänger-Themen 8
K class Enum Methode: values() - finde ich nicht in der API Java Basics - Anfänger-Themen 2
W Java Anfänger... Finde fehler nicht Java Basics - Anfänger-Themen 11
B Java programm mit Arrays. finde den Fehler nicht Java Basics - Anfänger-Themen 3
U Finde den fehler nicht Java Basics - Anfänger-Themen 10
U Finde den fehler nicht Java Basics - Anfänger-Themen 6
C Finde meinen Fehler nicht Java Basics - Anfänger-Themen 6
A Finde javax.servlet.* nicht Java Basics - Anfänger-Themen 6
F Finde fehler nicht Java Basics - Anfänger-Themen 5
N finde die fehler nicht Java Basics - Anfänger-Themen 9
G Bild wird nicht neu gezeichnet - finde den Fehler nicht Java Basics - Anfänger-Themen 3
G wie finde ich workspace programmatisch? Java Basics - Anfänger-Themen 13
G Wie finde ich das Verzeichnis von meinen Java Projekt? Java Basics - Anfänger-Themen 7
S Finde den Fehler nicht Java Basics - Anfänger-Themen 13
H Finde Position Java Basics - Anfänger-Themen 4
B wo finde ich diese Dateien? Java Basics - Anfänger-Themen 6
B Wo finde ich die Klasse javax.sound.sampled.AudioSystem Java Basics - Anfänger-Themen 7
G wie finde ich den pfad meines programms raus? Java Basics - Anfänger-Themen 2
T ArrayIndexOutOfBoundsException finde den Auslöser nicht Java Basics - Anfänger-Themen 5
O problem mit document listener finde den fehler nicht Java Basics - Anfänger-Themen 2
O arrayindexoutofbounds finde den fehler nicht Java Basics - Anfänger-Themen 6
B Finde das Problem nicht! Java Basics - Anfänger-Themen 2
R Finde meinen Fehler nicht! - Namen von Personen vergleichen Java Basics - Anfänger-Themen 6
M Finde den Fehler nicht Java Basics - Anfänger-Themen 3
B Finde Methode einer Klasse nicht Java Basics - Anfänger-Themen 4
N Finde Fehler nicht! Help plz! Java Basics - Anfänger-Themen 3
F Kleiner Fehler, den ich aber leider nicht finde. Java Basics - Anfänger-Themen 4
F Erste Schritte in Java - Wo finde ich Antworten? Referenzbib Java Basics - Anfänger-Themen 3
B Wo finde ich eine Übersicht aller Methoden? Java Basics - Anfänger-Themen 2
J wo finde ich die methode addactionlistener in der api ? Java Basics - Anfänger-Themen 5
S Header- Datei erzeugen mit javah Java Basics - Anfänger-Themen 1
H Probleme beim erzeugen einer Headerdatei mit javah Java Basics - Anfänger-Themen 3
M probleme mit javah Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben