WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 07.04.2009, 14:39   #1
Dillinger
Veteran
 
Registriert seit: 09.07.2000
Ort: wien
Beiträge: 275


Standard java mehrstufige package compilieren

hi pro-gs!
habe ein grundlegendes (verständnis?)problem beim händischen (ohne eclipse) compilieren folgenden testbeispieles:
(kurzerklärung: T1 ruft eine methode getXX aus T3 auf, wobei T3 die Klasse T2 implementiert;
T1 in package test; T2 & T3 in package test.testest)

verwende Windows XP, javac-version: 1.5.0_02

Code:
T1.java:
package test;
public class T1 {
  public static void main(String [] args) throws Exception {
    test.testest.T2 x1 = new test.testest.T3();
    String x2 = x1.getXX();
    System.out.println("x1.getXX = " + x2 + " !");
    }
}

T2.java:
package test.testest;
public interface T2 {
    public String getXX();
}

T3.java:
package test.testest;
public class T3 implements T2 {
    public String getXX() {
      System.out.println("+++T3.getXX+++");
      return ("XX");
    }
}
Package-Explorer-Struktur in Eclipse:
(P) test
..+ (J) T1.java
(P) test.testest
..+ (J) T2.java
..+ (J) T3.java
(P) steht für das Package-Symbol, (J) für Java-File

Ausgabe von Run T1 in Eclipse wie erwartet:
Code:
+++T3.getXX+++
x1.getXX = XX !
Ordnerstruktur auf C:\test:
Code:
12:11               242 T1.java
13:42    <DIR>          testest

dir von C:\test\testest
13:42    <DIR>          .
13:42    <DIR>          ..
13:47                79 T2.java
13:47               166 T3.java
nun versuchte ich zu compilieren:
C:\test\testest> javac T2.java
---> keine Meldung, T2.class erstellt (dh also: ok)

C:\test\testest> javac T3.java
Code:
T3.java:3: cannot find symbol
symbol: class T2
public class T3 implements T2 {
                           ^
1 error
selber Fehler auch mit: javac -cp . T3.java

C:\test> javac T1.java
Code:
T1.java:5: package test.testest does not exist
    test.testest.T2 x1 = new test.testest.T3();
                ^
T1.java:5: package test.testest does not exist
    test.testest.T2 x1 = new test.testest.T3();
                                         ^
2 errors
auch mit den optionen
-cp .
-cp .;testest
-cp c:\test\testest

selbe Fehlermeldung

hoffe ihr könnt mir einen tip geben wie das zu compilieren ist - danke!
(die package-struktur test.testest soll so bleiben)

zusatzfrage:
sind die beiden packages test und test.testest irgendwie logisch/funktionell/hierarchisch verbunden oder sowieso unabhängig?

mfG Dilli.nger
____________________________________
2 pi or not 2 pi
Dillinger ist offline   Mit Zitat antworten
Alt 09.04.2009, 13:40   #2
Dillinger
Veteran
 
Registriert seit: 09.07.2000
Ort: wien
Beiträge: 275


Standard

Lösung gefunden:
man muss vom package-Startordner aus compilieren/ausführen (in diesem Fall C:\)
Code:
C:\> javac test/testest/T2.java
C:\> javac test/testest/T3.java
C:\> javac test/T1.java (aber nicht: javac test.T1.java)

C:\> java test.T1 (oder auch: java test/T1)
gibt es nun keine Möglichkeit T1 auszuführen wenn man in einem anderen Verzeichnis ist?

edit: aha mittels -cp C:\ .. alles klar! (aber sehr abschreckend wie java einen gängelt
____________________________________
2 pi or not 2 pi
Dillinger ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:37 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag