WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   java mehrstufige package compilieren (http://www.wcm.at/forum/showthread.php?t=234162)

Dillinger 07.04.2009 14:39

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

Dillinger 09.04.2009 13:40

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 :ms: :mad: ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:50 Uhr.

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