java alles in ein Paket rein (rxtxcomm inklusive)

Gast #2409785
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
Gast #2409931
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
Persönliche Seite #2409947
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.
Gast #2410511
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
Persönliche Seite #2410581
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)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren