www.mikrocontroller.net

Forum: PC-Programmierung Atmel AtUsbHidJni in Java einbinden


Autor: robbse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich habe hier den AT90USBKey und einen ganzen Haufen Beispiele von Atmel 
herumliegen.
Mit Hilfe von Netbeans habe ich (PC-Programmier-Anfänger) eine Anwendung 
in Java geschrieben und soweit getestet. Das Problem ist: Unter Netbeans 
läuft das Programm, wenn ich das Programm aber "für sich" starte bekomme 
ich folgende Fehlermeldung: "Exception in thread "AWT-EventQueue-0" 
java.lang.UnsatisfiedLinkError: no AtUsbHidJni in java.library.path".
In einem Dokument von Atmel heisst es außerdem : "To compile the 
project, please add to the class path of the AtUsbHidJni.jar package:
JAVAc userhid.JAVA -classpath AtUsbHidJni.jar". Wo stelle ich jetzt in 
Netbeans was ein? Bin da ein bisschen überfordert...

robbse

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
z.B. in der Kommandozeile:
JAVA -classpath AtUsbHidJni.jar;MeinProgramm.jar MeinPackage.MeineKlasse

Ansosnten ist mir nicht ganz klar was "für sich" jezt genau bedeutet... 
Kommandozeile? Jar Package? Exe Wrapper?

Autor: robbse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
??? OK jetzt mal langsam, bitte.
Die Fehlermeldung erhalte ich wenn ich das ganze über das 
Kommandofenster starte. Eigentlich will ich aber einen Doppelklick auf 
das *.jar-File machen, welches von Netbeans erstellt wurde (das meine 
ich mit "für sich").

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja der Fehler sagt dir das er die JNI nicht findet.
Du hast folgende Möglichkeiten:
1) Das Jar in den globalen Classpath einfügen
2) Einen passenden Aufruf z.B. in einer Batch/cmd Datei erzeugen
oder
3) Lade dir mal JSmooth runter. Da kannst du dann die AtUsbHidJni.jar in 
den Classpath aufnehmen, und das Programm erzeugt dir eine exe Datei mit 
den benötigten aufrufen.

1) Würde ich dir nicht unbedingt empfehlen wenn nur falls es 
ausschließlich für dich sein soll
2) ist eigentlich ganz einfach du erzeugst eine datei, z.B. start.bat 
und trägst da folgendes ein:
@echo off
SET MYJAR = <Hier der name der von Netbeans erzeugten Jar Datei>
SET ATUSBJAR = AtUsbHidJni.jar
SET MAINCLASS = <Name deiner Hauptklasse>
JAVA -classpath %ATUSBJAR%;%MYJAR% %MAINCLASS%
3) Ist ganz gut wenn du das Programm später vieleicht anderen zu 
Verfügung stellen willst

Autor: robbse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Läubi,

sorry dass ich mich jetzt erst melde; der Tag war stressig.
Werde mir jetzt mal Tor Nummer 3 vornehmen. Klingt ja sehr interessant!

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der große Vorteil von JSmooth ist halt das du da den ganzen Setup ala 
Maximaler Speicher, benötigte VM's+Libarys schön "DAU-freundlich" 
verpacken kannst, JRE wird auch installiert falls kein Java vorhanden 
ist.

Autor: robbse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mmmmh ja. OK, da muss ich auch erst mal durchblicken. *.exe-Dateien 
laufen aber nicht unter Linux, oder? Aber auf jeden Fall Danke für den 
Tipp!
Zwischenzeitlich habe ich ein anderes Workaround gefunden: Mit dem 
*jar-File von Atmel kamen noch zwei DLL's. Die habe ich jetzt beide in 
den Ordner mit der von Netbeans erzuegten *.jar gelegt und: ...es klappt 
:)
Die Variante mit nur einer Datei finde ich aber eleganter; melde mich 
dann wieder.

Thx, robbse

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja angeblich kann man das irgenwei auch unter Linux zum laufen bringen 
(die Sourcen sind ja verfügbar) zumindest deuten einige Beiträge in dem 
Forum darauf hin. Unter Linux werden aber die nötigen DLL's nicht laufen 
;)

Autor: robbse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach verdammt! Da hab ich ja gar nicht drüber nachgedacht! Warum tue ich 
mir dann diesen Java-Sch*%$! an?! Naja, dann bleibe ich halt erst mal 
bei einer Windows-Lösung. Ist ja eh für die meisten erste Wahl.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nana... was ist den das für ein Gefühlsausbruch? ;)
Schau mal ob es vieleicht irgendwelche .so Files gibt das sit sozusagen 
die "dll" für Linux.
Ansosnten KÖNNTE es sein das es für Linux auch irgendwelche Standard 
Treiber für USB tun... Da kenn ich mich nun aber garnicht aus.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.