Witam
Próbuję zrozumieć zasadę działania kompilacji w javie z parametrem java -classpath
Katalog development zawiera plik A.java oraz katalog xcom zawierający B.java oraz B.class
Plik A posiada taką zawartość:
import xcom.B;
public class A
{
public static void main(String[] args)
{
B b = new B();
System.out.println("Ok");
}
}
a plik B taką:
package xcom;
public class B
{
}
Jestem w katalogu development i wydaje polecenie:
javac -classpath xcom A.java
Przez taki zapis chcę wskazać że javac ma szukać tego co tam potrzebuje klasa A w katalogu xcom, a otrzymuje takie coś:
tomasz@tomasz-Aspire-5610:~/Pulpit/development$ javac -classpath xcom A.java
A.java:2: package xcom does not exist
import xcom.B;
^
A.java:8: cannot access B
bad class file: xcom/B.class
class file contains wrong class: xcom.B
Please remove or make sure it appears in the correct subdirectory of the classpath.
B b = new B();
^
2 errors
a gdy wywołam: tomasz@tomasz-Aspire-5610:~/Pulpit/development$ javac -classpath . A.java
To o dziwo wszystko gra.
Czy ktoś mógłby mi wytłumaczyć o co biega?
Jakoś nie jest to dla mnie intuicyjne. Jak wskazuję . - bieżący katalog to pewnie przeszukuje też podkatalogi. Ale nie rozumie dlaczego nie chce to zadziałać jak wrzucam nazwę katalogu jako ścieżkę względną.??
Dzięki wielkie :)