Odpalanie programu wymagajacego dodatkowych bibliotek

0

Witam. Jestem użytkownikiem Linuksa i zaczynam programować w javie. Nie interesują mnie poki co zadne srodowiska programistyczne, bo chce po prostu umiec obslugiwac kompilator spod konsoli. Tak wiec czytam sobie TIJ4 i napotkalem na program wymagajacy kodu zrodlowego ze strony autora. Generalnie bez jego dodania nawet sie nie kombiluje, no ale do rzeczy: odpalam
javac -cp ~/java/TIJ HelloDate.java
Zaznaczam ze nie interesuje mnie na tym poziomie zabawa z CLASSPATH. Chcę to wszystko poustawiac z linii komend.

No i ładnie wszystko, bez zadnych błędów zakonczylo sie dzialanie kompilatora, no wiec przechodze do odpalenia, no i java -cp ~/java/TIJ HelloDate i..

Exception in thread "main" java.lang.NoClassDefFoundError: HelloDate
Caused by: java.lang.ClassNotFoundException: HelloDate
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: HelloDate.  Program will exit.

Nie wiem dlaczego tak się dzieje, skoro mam utworzony plik HelloDate.class. Tak wiec kompilacja przebiegła pomyślnie. Co sugerujecie? Probowalem tez odpalac z opcja -cp ., ale to nie pomaga.

Odpalałem ten sam program w bluej i dzialal bez problemu. Strasznie dziwne.

0

Pokaż kod klasy i napisz komendę którą odpalasz program. Być może problem jest w tym, że klasa ma zdefiniowany pakiet inny niż domyślny, ale to się zobaczy.

0

Znalazłem powod błędu. W kodzie plików ksiązki thinking in java znajduje się w kodzie każdego z programów na początku przed definicją klasy linia package nazwafolderuzklasą;
Czy ktoś mi może wyjaśnić, dlaczego to sie dobrze kompiluje? Odpalić się jednak z tym kawałkiem kodu programu nie da. Przy kompilacji bez tego badziewia wszystko działa ok. Ciekawą rzeczą jest fakt, ze odpalacjac kod zawierajacy tę linie np. w srodowisku bluej, wszystko działa poprawnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1