Java

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
klaus_h
Beiträge: 247
Registriert: 14.07.2004 17:27:45
Wohnort: Schnelldorf

Java

Beitrag von klaus_h » 13.10.2005 15:36:34

Das Thema ist jetzt nicht unbedingt Debian-spezifisch, aber vielleicht
kennt sich jemand ein bißchen mit Java aus, ich leider nicht sonderlich.

Aufgabe ist das Lesen und Schreiben von AS/400 dataqueues (FIFO).

Dazu gibt es ein Toolkit von IBM, auch die entsprechenden Anleitungen.

Wie folgt:
1. installiere j2sdk-1_4_2_09-linux-i586.bin mit java-package.
2. Toolkit JTopen (hier wird nur jt400.jar benötigt).

Das Kommando java -version ergibt folgendes:

Code: Alles auswählen

java version "1.4.2_09"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_09-b05)
Java HotSpot(TM) Client VM (build 1.4.2_09-b05, mixed mode)
Ein kleines Script, das lediglich eine Zeile ausgibt, funktioniert auch.

Der Code für einen dataqueue-Aufruf sieht wie folgt aus (DQread.java):

Code: Alles auswählen

import java.io.*;
import java.util.*;
import java.net.*;
// Dies ist JTopen:
import com.ibm.as400.access.*;

public class DQread extends Object
{
	public static void main (String[] parameters)
	{
		System.out.println( "This is a Test." );
		String as400system = "fake_for_test";
// Diese Zeile wird beanstandet:
		AS400 as400 = new AS400(as400system);
		System.exit(0);
	}
}
Kompiliert habe ich obiges wie folgt:

Code: Alles auswählen

javac -classpath /java/DQread.class:/java/jt400.jar DQread.java
Der Compiler erstellt dann DQread.class.
Beim Aufruf mit java DQread erhalte ich folgendes:

Code: Alles auswählen

This is a Test.
Exception in thread "main" java.lang.NoClassDefFoundError: com/ibm/as400/access/AS400
        at DQread.main(DQread.java:23)
Was meiner Meinung nach besagt, daß er die AS400 Klasse nicht findet,
welches aber in jt400.jar stecken sollte, oder?

Benutzeravatar
peschmae
Beiträge: 4844
Registriert: 07.01.2003 12:50:33
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: nirgendwo im irgendwo

Beitrag von peschmae » 13.10.2005 16:12:44

versuch mal

Code: Alles auswählen

javac -classpath /java/jt400.jar DQread.java
Eventuell mag er nämlich den anderen Teil der Classpath Angabe nicht weil diese nicht dem üblichen entspricht (In Classpath kommt entweder der Ordner wo das .class-File drin ist oder der Pfad zum Jar)
Ausserdem weiss ich nicht ob Java bei der -classpath Option : als Trenner für mehrere Pfade akzeptiert.

MfG Peschmä
"er hätte nicht in die usa ziehen dürfen - die versauen alles" -- Snoopy

Benutzeravatar
klaus_h
Beiträge: 247
Registriert: 14.07.2004 17:27:45
Wohnort: Schnelldorf

Java

Beitrag von klaus_h » 13.10.2005 18:56:15

Das ist es leider nicht, ich habe schon einige Möglichkeiten durchgespielt,
auch das nützt nichts:

Code: Alles auswählen

CLASSPATH=/java/jt400.jar java DQread
(den Aufruf hab ich irgendwo im Forum gefunden).

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 13.10.2005 19:19:52

hallo,

mach mal:

cd <dahin_wo_die_klasse_liegt>
java -cp .:/java/jt400.jar:$CLASSPATH DQread
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

Benutzeravatar
klaus_h
Beiträge: 247
Registriert: 14.07.2004 17:27:45
Wohnort: Schnelldorf

Java läuft

Beitrag von klaus_h » 13.10.2005 19:25:16

Tausend Dank, das wars!

Antworten