Problem beim import Pakete

hallo zusammen,
ich habe einen java projekt, in dem ich pakete benutze. das projekt lief die ganze zeit. aber nach einer woche findet der compiler die pakete nicht mehr. auch mit einem kleinen test_projekt geht das nicht mehr.

test_projekt:

import pakete.\*; 
// pakete ist ein verzeichnis, der mit class Package\_Test in der selben verzeichnis sich befindet

public class Package\_Test
 {
 public static void main(String args[]) 
 {
 int rgb[] = new int[3];
 getRGB getrgb; // pakete.getRGB

 rgb = getrgb.getCol(34555);

als Fehlermeldungen:
-package pakete does not exist
-can not resolve symbole:class getRGB

ich kann die Fehler nicht nachvollziehen. das Pakete-Verzeichnis ist vorhanden und enthält auch die klasse getRGB.
hat jemand einen Hinweis woran es liegen kann.
danke im voraus

youssef

Hallo.

Der ‚package test.beispiel‘ Befehl (klein und unscheinbar am Anfang einer java-Datei) ist wichtig und in allen Dateien zu benutzen die Bestandteil eines Packages sind. Sonst sucht der Compiler die weiters benötigten Dateien in einem gegebenen Verzeichnis gar nicht erst. Bzw. er ignoriert die Dateien, die nicht zum jeweiligen Package gehören.
Beispiel:
Code gutbeispiel1.java ‚package java.versuch‘
gutbeispiel2.java ‚package java.versuch‘
wird akzeptiert.
schlechtbeispiel1.java ‚package java2.versuch4.teil2‘
schlechtbeispiel2.java ‚package java2.versuch4.teil7‘
geht daneben…(-> Compiler Fehlermeldung)
Ausserdem muss der Compiler wissen, WO er seine import-Packages suchen soll: ‚javac -classpath c:\ordner\servlet.jar hallowelt.java‘

HTH
mfg M.L.

Hallo Markus,
danke für die schnelle Antwort.
sorry aber ich kann mein problem immer noch nicht nachvollziehen. warum ging vorher das programm einwandfrei ? ich habe doch nichts geändert und compilire mit „javac -deprecation Client.java“
die pakete befindet sich in der selben verzeichnis wo die klasse Client sich befindet.dh. der compiler soll die pakete finden oder nicht wenn ich von dort compiliere. ich habe das nochmal mit eclipse getestet und das geht aber im console nicht.

package pakete;


public class getRGB
 {
 public int [] getCol(long rgb)
 {
 int r,g,b;
 r = GetRValue(rgb);
 g = GetGValue(rgb);
 b = GetBValue(rgb);

 return new int [] {r,g,b};
 }

 private int GetRValue(long rgb) {return (int)(rgb& 0xFF);}
 private int GetGValue(long rgb) {return (int)((rgb \>\> 8)& 0xFF);}
 private int GetBValue(long rgb) {return (int)((rgb \>\>16)& 0xFF);}
 }

youssef

Hi Youssef,

versuche mal java -cp . meineKlasse

Dann wird das Verzeichnis auch gleihc in den Java-Class-Path aufgenommen…

Viel Erfolg

Winni

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hi winfried,danke dir.
habe meinen problem schon gelöst zuerst mit
javac -classpath [pfad wo die pakete befindet] [classname].java

und später über eine umgebungsveriable weil das dynamischer ist als die erste möglichkeit
name= classpath
value= pfad von package

youssef

[OT] Namensgebung
Hi,

nur ein kleiner Tip: Halte dich an die Sun Konventionen (wenns nicht in der Firma andere gibt). Macht dein programm deutlich lesbarer.

Das heißt (für das Beispiel): Klassennamen Groß und Methoden/Variablen klein. Macht es deutlich lesbarer. (vor allem wenn die Projekte größer werden)