PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : eigene Klassen einbinden - wie?



BlueJay
16-06-2007, 17:24
Hallo Leute,

wieder eine Anfängerfrage:

Da habe ich so eine Klasse, die mir Textbausteine bereitstellt.



package otashi;

class hilfetext
{
public String header="eine Ueberschrift";
public String text[]= {
"1.Zeile,",
"2.Zeile",
...
"letzte Zeile"
};

public hilfetext() { };
}


Diese soll mir einen Textviewer füllen:




package otashi;

import otashi.hilfetext;
import java.awt.event.*;
import java.awt.*;
import java.awt.Color;
import java.awt.Font;
import java.applet.*;

public class hilfescreen extends Applet implements KeyListener
{
Graphics g;

hilfetext hilfe=new hilfetext();

// Moto-Screen:
int sxmax=176;
int symax=204;


u.s.w.



Beide Dateien, in denen sich die Klassen befinden, sind im gleichen Verzeichnis.

Zunächst wurde hilfetext compiliert (ok), dann hilfescreen.
Fehler:


hilfescreen.java:6: cannot find symbol
symbol : class hilfetext
location: package otashi
import otashi.hilfetext;
^


CLASSPATH ist .
Beide Dateien sind im selben verzeichnis.

ich habe es mit und ohne Importieren von otashi.hilfetext probiert, es gab keinen Unterschied.

Packt man die beiden Klassen zusammen in eine Datei, geht alles problemlos.
Was mache ich hier falsch?

so long,
BlueJay

anda_skoa
16-06-2007, 18:12
Die Klasse hilfetext ist im Package otashi (erste Zeile, package Deklaration)

Wenn du eine Klasse kompilierst, die hilfetext benutzt, dann sucht der Compiler die Klasse auch in diesem Package, d.h. in einem Unterverzeichnis mit dem Namen otashi, unterhalb aller Pfade, die ihm als Classpath angegeben wurden.

Unter der Annahme, dass die Klassen bereits in diesem Vezeichnis liegen, kannst du sowas machen



cd ..
javac otashi/hilfescreen.java
cd otashi


Ciao,
_

BlueJay
16-06-2007, 20:30
dann sucht der Compiler die Klasse auch in diesem Package, d.h. in einem Unterverzeichnis mit dem Namen otashi, unterhalb aller Pfade, die ihm als Classpath angegeben wurden.


Jau, das war's! :)

Allerdings muss man dann wohl den appletviewer/das aufrufende Document wieder vom CLASSPATH-Root mit entsprechend angepassten Pfaden aufrufen, sonst läuft das Programm wieder mit no class dev found vor die Wand.

anda_skoa
16-06-2007, 21:22
Du kannst ja auch das übergeordnete Verzeichnis explizit zum Classpath hinzufügen.

Ciao,
_