JNI - Startprobleme

Status
Nicht offen für weitere Antworten.

Vril

Bekanntes Mitglied
Hallo,
habe gerade folgendes Javaprogramm geschrieben:
Code:
public class HalloWeltBeispiel {
	public static void main(String[] args){
		HalloWelt obj = new HalloWelt();
		obj.printHallo();
	}
}
class HalloWelt {
	// Laden der Bibliothek mit der nativen Implementierung
	static {
		System.loadLibrary("HalloWelt");
	}
	//Deklaration der nativen Methode
	public native void printHallo();
}
Dann das ganze compilet und dann: javah -jni HalloWelt gemacht, da gibt es folgende Fehlermeldung:

Exception in thread "main" java.lang.ClassFormatError: The major.minor version '
49.0' is too recent for this tool to understand.
at sun.tools.java.BinaryClass.load(BinaryClass.java:105)
at sun.tools.java.BinaryClass.load(BinaryClass.java:85)
at com.sun.tools.javah.oldjavah.JavahEnvironment.getClass(JavahEnvironme
nt.java:172)
at com.sun.tools.javah.oldjavah.JavahEnvironment.getAllFields(JavahEnvir
onment.java:89)
at com.sun.tools.javah.oldjavah.JNI.write(JNI.java:38)
at com.sun.tools.javah.oldjavah.Gen.run(Gen.java:149)
at com.sun.tools.javah.oldjavah.Main.run(Main.java:174)
at com.sun.tools.javah.oldjavah.Main.main(Main.java:41)
at com.sun.tools.javah.Main.main(Main.java:40)

Hat zufällig jemand eine Idee was ich da falsch mache bzw. warum diese Fehlermeldung kommt?
 

Murray

Top Contributor
Sieht so aus, als würde eine alte Version von javah (JDK < 1.5) verwendet werden, während die Klasse bereits mit einem neuen Compiler (JDK >= 1.5) übersetzt worden ist.
 
G

Gast

Gast
Hi, also direkt am Code liegt es nicht.
Hast du ein aktuelles JDK verwendet? Und zeigt dein Pfad auch entsprechend auf dieses JDK?
Am einfachsten rufst du alles noch mal mit kompletter Pfadangabe (zu Javac bzw. Javah) auf.
Hab es gerade mit deinem Code getestet (aktuelles JDK 1.5... und läuft!)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben