Zugriff auf Parallelport nur über Eclipse nicht über .jar !

Status
Nicht offen für weitere Antworten.

alphaChill

Aktives Mitglied
Moin an alle,

bin gerade dabei mir ein Programm zu schreiben, mit dem ich Bits auf die Datenleitung von meinem Parallelport am PC legen kann. Unter Eclipse (3.2) funktionierte das zunächst nicht... hatte immer den Fehler
Code:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no JPort in java.library.path 
      at java.lang.ClassLoader.loadLibrary(Unknown Source) 
      at java.lang.Runtime.loadLibrary0(Unknown Source) 
      at java.lang.System.loadLibrary(Unknown Source) 
      at directio.IOPortAccess.<clinit>(IOPortAccess.java:44) 
      at sonstiges.LPT_Port_Datenausgabe.main(LPT_Port_Datenausgabe.java:8)
Also gegoogelt und zufällig auf einen Seite von einer Schule gekommen:
http://bs-gelnhausen.de/typo3/BG12_2_TW_Materialien.135.0.html
und dort die Datei http://bs-gelnhausen.de/typo3/fileadmin/user_upload/div_Dateien/Java_Tools_Flach_kpl.zip runtergeladen, in der dann die gesuchte JPort.dll drin war. Also hab ich die in meinen Projekteordner eingefügt und der Fehler war weg und ich hatte vollen Zugriff auf meinen Port. (Die Datei "DrvLoad.exe, welche die Datei "giveio.sys" lädt, läuft bei mir auch...)
Als ich das vor einem halben Jahr in der Schule programmiert habe, hat's ohne JPort.dll funktioniert... an der Eclipse-Version liegt's nicht, habe auch die 3.4 getestet, dort bekam ich auch den Fehler... warum brauche ich nun diese Datei??

Naja, wie auch immer. Wollte für meinen Parallelport (über den ich eine LED ansteuere) auch eine schöne GUI haben. Also habe ich mir eine zusammengeschrieben. Diese funktioniert unter Eclipse ohne Probleme, wenn ich die GUI allerdings als Jar-Datei exportiere, regiert das Programm nicht auf den Button-Klick... weiß jemand warum? Hier mal der Programmcode:
Code:
package sonstiges;

import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.BorderFactory;
import javax.swing.border.BevelBorder;
import javax.swing.JButton;

import directio.IOPortAccess;

import java.awt.Point;
import java.awt.Dimension;

public class LPT_GUI_new extends JFrame {

	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JLabel jLabel = null;

	private JPanel jPanel = null;

	private JButton jButton = null;

	private JButton jButton1 = null;
	
	

	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel() {
		if (jPanel == null) {
			jPanel = new JPanel();
			jPanel.setLayout(null);
			jPanel.add(getJButton(), null);
			jPanel.add(getJButton1(), null);
		}
		return jPanel;
	}

	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setText("LED AN");
			jButton.setSize(new Dimension(100, 40));
			jButton.setLocation(new Point(33, 60));
			jButton.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					IOPortAccess io = new IOPortAccess();
					io.openDriver();
					try {
						io.writePort(0x378, 0x01);
					} catch (Exception e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
					io.closeDriver();
					io = null;
				}
			});
		}
		return jButton;
	}

	/**
	 * This method initializes jButton1	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton1() {
		if (jButton1 == null) {
			jButton1 = new JButton();
			jButton1.setText("LED AUS");
			jButton1.setSize(new Dimension(100, 40));
			jButton1.setLocation(new Point(166, 60));
			jButton1.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					IOPortAccess io = new IOPortAccess();
					
					io.openDriver();
					try {
						io.writePort(0x378, 0x00);
					} catch (Exception e1) {
						// TODO Auto-generated catch block
						e1.printStackTrace();
					}
					io.closeDriver();
					io = null;
				}
			});
		}
		return jButton1;
	}

	/**

	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				LPT_GUI_new thisClass = new LPT_GUI_new();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	/**
	 * This is the default constructor
	 */
	public LPT_GUI_new() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(300, 200);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setContentPane(getJContentPane());
		this.setTitle("LED on/off");
		this.setVisible(true);
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jLabel = new JLabel();
			jLabel.setText("(c) 2008, TJ");
			jLabel.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
			jContentPane = new JPanel();
			jContentPane.setLayout(new BorderLayout());
			jContentPane.add(jLabel, BorderLayout.SOUTH);
			jContentPane.add(getJPanel(), BorderLayout.CENTER);
		}
		return jContentPane;
	}

}  //  @jve:decl-index=0:visual-constraint="31,14"
 

parabool

Bekanntes Mitglied
Ich schätze mal, du hast hast die Bibliothek, die du verwendest, nicht in der
Manifest-Datei angegeben.

Wenn Du dein jar mal über die Kommandozeile startest wirst du
auf jeden Fall sehen woran es liegt.
 

alphaChill

Aktives Mitglied
Joa, kann gut sein... wie kann ich die in der Manifest-Datei angegben? z.Z. lasse ich diese von Eclipse automatisch generieren, aber außer "Manifest-Version: 1.0" steht dort nichts drin...

Hier der Fehler, der ausgegeben wird, wenn ich dir jar-Datei über die Konsole öffnen möchte:

w17824w96.jpg

(www.imgbox.de/?img=w17824w96.jpg)

rein müsste die Datei "communication.jar" (welche sich im Ordner "D:/Eigene Dateien/Java/" befindet) und ggf. die JPort.dll (befindet sich im Ordner "D:\Eigene Dateien\Java\workspace\ProName\").
 

parabool

Bekanntes Mitglied
BeimAufruf fehlt noch ein Parameter.
richtig: java -jar LPT.jar

Die Angabe der Klasse, die die main-Mehode beinhaltet sollte auch rein:
also:

Main-Class: sonstiges.LPT_GUI_new
(In Eclipse geht das auch per Dialog)


im verzeichnis deines jar's erstellst du am besten einen Ordner "lib"
dort steht deine communication.jar

Noch ein Eintrag ins Manifest:
Class-Path: lib\communication.jar


Im Jar-Export Dialog muss nun im 3. Schritt die Option auf "use existing manifest fromworkspace" sein
(ensprechend dann auch das Manifest auswählen)
 

alphaChill

Aktives Mitglied
parabool hat gesagt.:
im verzeichnis deines jar's erstellst du am besten einen Ordner "lib"
dort steht deine communication.jar

Wie erstelle ich in einer Jar-Datei ein Verzeichnis?

Ich kann zwar einen Ordner in meinem Projekt anlegen, aber dort nicht die "communication.jar" reinkopieren und später über "Export" -> "JAR file" -> "Select the resources to export" auswählen.
 

parabool

Bekanntes Mitglied
ok, hab mich vielleicht falsch ausgedrückt.

Im selben Verzeichnis wo deine LPT.jar liegt (z.B in "eigene Dateien\" oder wohin auch immer du deine jar exportierst)
legst du den lib-Ordner an.
Dort hinein kommt dann die communication.jar


das ganze könnte man auch mit build-skripts machen.
Aber bei einen so kleinen Projekt...
 

alphaChill

Aktives Mitglied
okay, danke für deine Antwort!
Habe jetzt die Bibliotheksdatei entpackt und die .class-Datei in eine .java-Datei umgewandelt und diese in mein Projekt hinzugefügt. Diese muss ich jetzt mit exportieren und schon läuft's :)
Ich hoffe dass ich mir der Umwandlung nichts illegals gemacht habe :oops:

Deinen Vorschlag werde ich morgen testen... aber danke noch mal für deine Hilfe!
 

alphaChill

Aktives Mitglied
hmmm... die Jar-Datei habe ich mal von meinem ehemaligen Lehrer bekommen... und weder in der .Jar-Datei, noch in der .Java-Datei oder in beiliegenden Dateien (welche nicht dabei waren) waren irgendwelche Copyrights angegeben oder sonstige Texte zu einer Lizens... Aber ich werd's mal löschen und den Lösungsvorschlag von "parabool" testen...

Edit: der Lösungsvorschlag von "parabool" funktioniert leider nicht... bekomme folgende Meldung:
c51104j71.jpg

www.imgbox.de/?img=c51104j71.jpg

In der Manifest-Datei steht folgendes:
Code:
Manifest-Version: 1.0
Main-Class: eine_led.LPT_GUI_AUSWAHL
Class-Path: lib\communication.jar
 

parabool

Bekanntes Mitglied
Die LPT.jar hast du auf dem Desktop gespeichert.
Hast du dort auch ein Verzeichnis "lib" in dem die Bibliotek liegt ?
 

parabool

Bekanntes Mitglied
Hab noch mal dein Eingangsposting gelesen und die verlinkten Materialien angeschaut.


Die Biblioteken:
comm.jar und tools.jar brauchst du doch ebenfalls:
also

comm.jar und tools.jar ins lib
und
Class-Path: lib\communication.jar lib\comm.jar lib\tools.jar

dann:

Die nativen Bibliotheken dll's also JPort und win32comm brauchst du ebenfalls

Entweder als Parameter beim Aufruf;
java -Djava.library.path=pfadzudendlls -jar LPT.jar

wenn sie im lib liegen,reicht auch eine relative Angabe:
java -Djava.library.path=lib -jar LPT.jar



oder die dll's in deinen windows-system-ordner kopieren.
(Dann kanns du dein Programm per Doppelklick starten, ohne Parameterangabe)



Es gibt auch die Möglichkeit, dll's in's jar zu packen und dann im programm
zu laden über System...hab mich noch nicht damit beschäftigt, google...

Gruss
p
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
W Klassen Zugriff auf ein Textfile aus allen Klassen. Allgemeine Java-Themen 2
izoards Zugriff auf gemeinsame Ressource (CSV-File) Allgemeine Java-Themen 3
S Java Zugriff auf Netzwerklaufwerk Allgemeine Java-Themen 1
sascha-sphw Java 9 module Zugriff auf eine resource einer anderen JAR Allgemeine Java-Themen 0
KeexZDeveoper Zugriff auf Methoden vom Server Allgemeine Java-Themen 7
O Zugriff auf mySQL ohne JDBC Allgemeine Java-Themen 3
P Element einer Liste wurde hinzugefügt, aber es gibt keinen Zugriff Allgemeine Java-Themen 2
B Maven Zugriff auf files aus einem kompilierten jar Allgemeine Java-Themen 15
S Zugriff auf jUnit Test Suite Runner-Instanzen innerhalb von Test Classes Allgemeine Java-Themen 7
W Zugriff auf Objektvariablen vs. Übergabe Allgemeine Java-Themen 3
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
Tommy Nightmare HTTP Zugriff auf Internetseite im Loginbereich Allgemeine Java-Themen 5
H Zugriff auf PHP Allgemeine Java-Themen 4
B DB-Zugriff einer Webanwendung funktioniert nicht mit Java 7 Allgemeine Java-Themen 2
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
O JNA Zugriff auf Funktion aus DLL Allgemeine Java-Themen 0
O Zugriff auf Windows Zertifikatstore Allgemeine Java-Themen 2
M Kein Zugriff auf microSD Karten Allgemeine Java-Themen 4
T Zugriff auf Datenbank Allgemeine Java-Themen 1
J Zugriff auf IMAP GMail Konto scheitert. Allgemeine Java-Themen 2
P Frontend- Zugriff auf WS- Backend Allgemeine Java-Themen 0
U Zugriff auf Datei sperren Allgemeine Java-Themen 5
N Best Practice Semi-Synchronized Zugriff Allgemeine Java-Themen 0
C Zugriff auf Event felder Allgemeine Java-Themen 0
M Threads synchroner Zugriff (add/delete/read) auf eine Liste Allgemeine Java-Themen 6
F Zugriff Verweigert bei Kopieroperation? Allgemeine Java-Themen 4
T JNI: kein Zugriff auf VM in Callback-Methode eines Windows-Hooks Allgemeine Java-Themen 3
S Dynamischer Zugriff Allgemeine Java-Themen 4
Minonos Einem Programm Zugriff auf bestimmte Ordner geben Allgemeine Java-Themen 5
E Zugriff auf Dateien im Filesystem überwachen Allgemeine Java-Themen 5
H Programierstil: static - Zugriff vs. Staticzugriff Allgemeine Java-Themen 24
V Zugriff auf den Objekterzeuger? Allgemeine Java-Themen 4
M Zugriff zweier Threads auf diesselbe Methode Allgemeine Java-Themen 16
B Zugriff auf eine HashMap Allgemeine Java-Themen 4
B JApplet Zugriff auf Local Storage des Browser? Allgemeine Java-Themen 2
D Zugriff auf Array-Liste Allgemeine Java-Themen 19
M gleichzeitiger Zugriff auf eine Textdatei Allgemeine Java-Themen 6
D Eclipse Kein Zugriff auf Inhalt einer referenzierten .jar Allgemeine Java-Themen 5
B synchronisierter zugriff auf Objekt Allgemeine Java-Themen 6
nutellastulle Zugriff, Übergabe, Bearbeitung und Ausgabe von Jlist Allgemeine Java-Themen 6
U Große Liste von Strings mit indiziertem Zugriff Allgemeine Java-Themen 31
J XML Element Zugriff Allgemeine Java-Themen 4
P Daten kopieren mit nio - Zugriff verweigert Allgemeine Java-Themen 8
M Klassen Zugriff auf getMethode ohne Klasse zu erzeugen Allgemeine Java-Themen 6
A Input/Output Applet-Zugriff auf PHP-Schnittstelle (externer Server) Allgemeine Java-Themen 22
H Vererbung Abgeleitete Klassen und Zugriff Allgemeine Java-Themen 2
C Probleme mit dem Zugriff auf private Methode per reflection Allgemeine Java-Themen 2
J Zugriff auf Poker-Client Fenster Allgemeine Java-Themen 14
C Zugriff auf private Methode per reflection geht nicht mehr Allgemeine Java-Themen 3
S Zugriff auf innere Klasse Allgemeine Java-Themen 3
D Kein Zugriff auf WebService ausser localhost Allgemeine Java-Themen 4
Sonecc Zugriff auf Class File einer anderen Jar während der Laufzeit Allgemeine Java-Themen 2
J Zugriff auf Dateien auf einem shared Folder? Allgemeine Java-Themen 3
H Zugriff auf VBA in Java Allgemeine Java-Themen 2
Haave Audio Device Unavailable: Kein gleichzeitiger Zugriff auf Soundsystem möglich Allgemeine Java-Themen 7
G Letzter Zugriff auf Datei Allgemeine Java-Themen 5
C java.io.FileNotFoundException: (Zugriff verweigert) Allgemeine Java-Themen 14
O Zugriff auf Serielle Schnittstelle - Keine Ports gefunden. Allgemeine Java-Themen 8
C Webstart: Zugriff auf lokale Dateien? Allgemeine Java-Themen 2
X Zugriff auf ComboBoxen in Hauptklasse von zweiter Klasse aus Allgemeine Java-Themen 8
J Zugriff auf gemeinsame Funktionen Allgemeine Java-Themen 4
Airwolf89 Zugriff auf ArrayList<ArrayList> Allgemeine Java-Themen 3
Airwolf89 Zugriff auf Werte in ArrayList<ArrayList> Allgemeine Java-Themen 4
T Zugriff zwischen Klassen für repaint Allgemeine Java-Themen 7
N Zugriff auf eine Referenzvar. Allgemeine Java-Themen 3
S Zugriff auf Klasse Allgemeine Java-Themen 4
Meldanor Mehrdimensionale Arrays : Zugriff auf n-tes Array Allgemeine Java-Themen 5
E JNA:Zugriff auf Common-Block von Fortran bzw. Struct in C Allgemeine Java-Themen 2
T Zugriff auf Singleton verkürzen - Namespaces?? Allgemeine Java-Themen 20
L Zugriff auf ein Objekt mit mehreren Threads Allgemeine Java-Themen 11
Airwolf89 dynamischer Zugriff auf Variablen/ Objekte Allgemeine Java-Themen 4
S Zugriff auf einzelne Bildpunkte Allgemeine Java-Themen 3
D Referenzen weiterreichen vs. statischer Zugriff Allgemeine Java-Themen 3
V Zugriff auf Default-Package? Allgemeine Java-Themen 6
P RegeEx-Problem: Zugriff auf group Allgemeine Java-Themen 2
M Zugriff auf Parallel-Schnittstelle Allgemeine Java-Themen 2
B Zugriff mit einem Applet auf den Datenträger Allgemeine Java-Themen 11
S Innere Klasse: Zugriff auf äußere Variable Allgemeine Java-Themen 5
I Zugriff auf Daten Allgemeine Java-Themen 5
T Zugriff per Reflection o.ä. möglich? Allgemeine Java-Themen 18
D Zugriff auf Windows Dienste Allgemeine Java-Themen 7
G Zugriff auf Memberclasses einer geladenen Class-Datei Allgemeine Java-Themen 2
I Gleichzeitiger zugriff auf ein Long über Threads Allgemeine Java-Themen 2
P Wieso HashMap-Zugriff mit Object, statt mit MyObject? Allgemeine Java-Themen 12
J Kein Zugriff auf Klassen im Default Package Allgemeine Java-Themen 8
M Paralleler Zugriff auf statische Methode Allgemeine Java-Themen 5
S Zugriff auf unterschiedliche JREs Allgemeine Java-Themen 7
M "Unzulässiger Zugriff auf einen Speicherbereich" Allgemeine Java-Themen 7
G Zugriff auf ein sama share Allgemeine Java-Themen 8
J Java zugriff auf Exchange Server Allgemeine Java-Themen 10
D eclipse: Zugriff auf Ordner per code Allgemeine Java-Themen 4
O Konkurrierender Zugriff auf Log-Datei mit Log4J Allgemeine Java-Themen 11
Caracasa [Threads] Gleichzeitiger Zugriff auf eine LinkedList Allgemeine Java-Themen 9
L Zugriff auf Objekt das sich in einer Liste befindet Allgemeine Java-Themen 2
J Zugriff auf den Namen einer Variablen Allgemeine Java-Themen 7
J Zugriff auf Map in anderer Klasse Allgemeine Java-Themen 2
J Endlosschleife durch wechselseitigen Zugriff zweier Klassen? Allgemeine Java-Themen 2
F Zugriff auf lokalen Rechner wer weiss Rat ? Allgemeine Java-Themen 16
G Zugriff auf Dateien in jar-Datei Allgemeine Java-Themen 13

Ähnliche Java Themen

Neue Themen


Oben