java-forum.org
JBoss Seam
Alter Preis: 39,95 €
Jetzt: 0,00 €

zzgl. Versandkosten

Zurück   java-forum.org > Java - Programmierung > Allgemeine Java-Themen

Allgemeine Java-Themen Allgemeine Themen, die nicht in andere Fachforen und nicht zu den Java Basics passen

Antwort    
Themen-Optionen Thema durchsuchen Ansicht
Alt 31.10.2009, 16:09   #1 (permalink)
Neuer Benutzer
Bit
 
Registriert seit: 31.10.2009
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard jni über win64

hallo,ich hab folgendes problem.
ich hab über einen gcc compiler eine dll erstellt und will diese über jni mit java zum laufen bringen. also ich gib ein "java helloworld" und es entsteht folgende fehlermeldung....


Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\Olidata\Desktop\Dictateam\dll_test\classone\hello.dll:
Can't load IA 32-bit .dll on a AMD 64
-bit platform
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1778)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1703)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at helloworld.<clinit>(helloworld.java:8)
Could not find the main class: helloworld. Program will exit.

Kurz gesagt, bei einer win32-architektur (habe ich auch schon ausprobiert) funktioniert dieses kleine java-programm mit dieser dll tadellos, nur nicht auf einem win64-betriebssystem wie mein vista.
Hab auch seit gestern nach diesem problem gegoogelt, konnte aber für dieses spezielle problem keine passenden hilfestellungen finden.
kann mir jemand hierbei weiterhelfen?
Cannavaro1985 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 31.10.2009, 16:22   #2 (permalink)
Stammbenutzer
CD-R 80
 
Registriert seit: 07.01.2007
Beiträge: 9.104
Abgegebene Danke: 0
Erhielt 260 Danke für 252 Beiträge
Hast du dem gcc irgendwie gesagt, dass die DLL für ein 64bit-System gedacht ist? (Müßte jetzt auch erst nachsehen, welche Flags man da setzen muss, aber automatisch macht er das vmtl. nicht...)
Marco13 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 31.10.2009, 16:37   #3 (permalink)
Neuer Benutzer
Bit
Themenstarter
 
Registriert seit: 31.10.2009
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
ich hab für die ddl folgendes eingegeben:
gcc -mno-cygwin -I"C:\Programme\Java\jdk1.6.0_16\include" I"C:\Programme\Java\jdk1.6.0_16\include\win32" -shared -Wl,--add-stdcall-alias -o hello.dll hello.c

das problem ist auch, das das jdk im include-ordner eine dll-compilierung nur für win 32 anbietet.
Cannavaro1985 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 31.10.2009, 17:49   #4 (permalink)
Stammbenutzer
CD-R 80
 
Registriert seit: 07.01.2007
Beiträge: 9.104
Abgegebene Danke: 0
Erhielt 260 Danke für 252 Beiträge
Das \include\win32 ist AFAIK auch auf 64bittern OK, aber du wirst dem GCC wohl zumindest noch ein Flag wie -m64 mitgeben müssen - ob das schon reicht, weiß ich aber leider nicht auswendig...
Marco13 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 31.10.2009, 19:49   #5 (permalink)
Neuer Benutzer
Bit
Themenstarter
 
Registriert seit: 31.10.2009
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
danke für diesen tipp, jetzt komme ich langsam näher an die lösung heran
Cannavaro1985 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 01.11.2009, 15:46   #6 (permalink)
Neuer Benutzer
Bit
Themenstarter
 
Registriert seit: 31.10.2009
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
ich hab jetzt mit dem gcc-befehl auch das -m64 flag eingegeben und es erscheint folgende fehlermeldung...

hello.c:1: sorry, unimplemented: 64-bit mode not compiled in

hab nach dieser fehlermeldung weiter gegoogelt und herausbekommen das ich hierfür einen Cross-compiler für m64-flag benötige. weiß jetzt auch nicht was ich darunter verstehen soll
Cannavaro1985 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 01.11.2009, 16:56   #7 (permalink)
Java-Forum Team
IRC-Operator (Java-Chat)
Moderator
 
Benutzerbild von Noctarius
 
Registriert seit: 17.08.2007
Beiträge: 3.954
Abgegebene Danke: 2
Erhielt 153 Danke für 149 Beiträge
Ein Cross-Compiler ist generell ein Compiler, der für eine andere Architektur (in diesem Fall x64) kompiliert als die aktuell laufende.

Mit einem Cross-Compiler kann man z.B. auch Linux-Programme unter Windows kompilieren, allerdings sind diese dann trotzdem nur unter Linux lauffähig, daher das Cross.
Noctarius ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 01.11.2009, 17:34   #8 (permalink)
Stammbenutzer
CD-R 80
 
Registriert seit: 07.01.2007
Beiträge: 9.104
Abgegebene Danke: 0
Erhielt 260 Danke für 252 Beiträge
Du compilierst auf einem 64bitter? Kann's sein dass du irgendwie eine alte (32bit) Version vom gcc verwendest oder so?
Marco13 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 01.11.2009, 18:13   #9 (permalink)
Neuer Benutzer
Bit
Themenstarter
 
Registriert seit: 31.10.2009
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
ja, genau das tue ich die ganze zeit. also ich hab den gcc-compiler von MinGW (version 5.1.6). sollte eigentlich die aktuelle version sein.
Cannavaro1985 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 01.11.2009, 23:06   #10 (permalink)
Stammbenutzer
CD-R 80
 
Registriert seit: 07.01.2007
Beiträge: 9.104
Abgegebene Danke: 0
Erhielt 260 Danke für 252 Beiträge
Hm... mit cygwin/mingw hatte ich lange nichts zu tun, deswegen gehen mir jetzt auch die Ideen aus - braucht man da vielleicht einen speziellen MinGW? (Ein kurze Websuche hatte auf MinGW-w64 - for 32 and 64 bit Windows | Get MinGW-w64 - for 32 and 64 bit Windows at SourceForge.net geführt, aber hab's noch nicht näher angesehen - ist nur eine Frage....)
Marco13 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Alt 02.11.2009, 10:16   #11 (permalink)
Neuer Benutzer
Bit
Themenstarter
 
Registriert seit: 31.10.2009
Beiträge: 6
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
genau so weit bin ich auch gestern gekommen. habs mir auch schon runtergeladen. allerdings weiß ich nicht wo ich diesen mingw64-ordner im mingw-verzeichnis installieren soll. hab auch dazu noch keine erklärende dokumentation gefunden, wo ich mingw64 hinkopieren soll.
Cannavaro1985 ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Mit Zitat antworten
Antwort    

Lesezeichen

Latex Maths & Physics Editor ...

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Apache FOP 0.20-5 mit JNI von C++ Code aufrufen Chris81T Allgemeine Java-Themen 8 05.09.2008 16:38
JNI: env an Thread übergeben mischer Allgemeine Java-Themen 1 01.06.2006 14:16
JNI will nicht gehen unter mehren Packeten tuxilein Allgemeine Java-Themen 2 19.10.2005 08:24
JNI - Java-Code mit DELPHI verbinden Reeny Allgemeine Java-Themen 2 07.10.2005 14:28
Win32-Dll-Funktionen nutzen mit JNI, wie? scrontch Allgemeine Java-Themen 0 10.10.2003 17:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:09 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de