Forum: PC-Programmierung java alles in ein Paket rein (rxtxcomm inklusive)


von Cheffe (Gast)


Lesenswert?

Moin, bisher verwende ich fatjar als eclipse-plugin um ein lauffähiges 
jar file zu erzeugen. Leider müssen die Benutzer auf den Ziel-PCs 
(WinXP) immer die Komponenten von rxtxcomm in die entsprechenden 
Verzeichnisse unter C:\Programme\java kopieren. Man müsste doch ein 
jar-file erzeugen können, in denen die Dateien enthalten sind?

Gruß Cheffe

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Welche Dateien? Die DLLs? Und in irgenwelche Programmverzeichnisse muß 
man schon garnix kopieren. Also bitte nochmal genauer beschreiben.

von Cheffe (Gast)


Lesenswert?

Moin, Du irrst.  

entpacken Sie das Archiv rxtx-*-win32.zip,
 kopieren Sie die Datei rxtxSerial.dll in das Verzeichnis 
%JAVA_HOME%\bin,
(%JAVA_HOME% ist das Verzeichnis, in dem Ihr JRE installiert ist, z.B. 
c:\Programme\Java\j2re1.4.1_01)
 kopieren Sie die Datei RXTXcomm.jar in das Verzeichnis 
%JAVA_HOME%\lib\ext

So funktioniert es auf allen XP-PCs. Allerdings ist das für viele User 
"zu hoch".


Gruß
Cheffe

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Cheffe schrieb:
> So funktioniert es auf allen XP-PCs.

Es funktioniert aber genauso wenn man die DLL mit ins 
Programmverzeichnis packt und die passende JAR ins den Classpath 
aufnimmt (oder in das "eigene" JAR integriert).

Die Anleitung ist dafür gedacht einmal global die Lib Systemweit zu 
installieren, ist aber für die Verwendung nicht zwingend man kann diese 
auch einfach mit seinem Programm mitliefern.

Deshalb wäre es ganz praktisch wenn du erklären würdest was du im Moment 
machst und was dabei nicht funktioniert.

von Cheffe (Gast)


Lesenswert?

Moin, also ich habe inter D:\workspace\Logger\lib die Dateien

RXTZXcomm.jar

und

rxtxSerial.dll

liegen. Und die sollen mir rein ins jar-File.


Auf dem ziel Rechner erhalte ich folgende Fehlermeldung: 
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path 
thrown
  while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial 
in java.library.path


Gruß
Cheffe

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Cheffe schrieb:
> rxtxSerial.dll

die muß in das Verzeichnis aus welchem du das Programm startest, die 
kann nicht ohne weiteres in dem JAR AUsgeliefert werden also z.B.:
1
meinprogram/meinprogram.jar
2
meinprogram/rxtxSerial.dll
3
meinprogram/start.bat
Alternativ kann man sich auch einen DLL Loader bauen, welcher die DLL 
beim starten in eine Temporäre Datei (File.createTempFile()) extrahiert 
und dann manuell laden mit über die Runtime:
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Runtime.html#load(java.lang.String)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.