zmienna CLASSPATH

0

Dopiero uczę się javy (od dwóch dni) więc wybaczcie jeśli moje pytanie jest głupie.

Otóż aby uruchomić program przez konsolę potrzebowałam (wg tutoriala) ustawić dwie zmienne systemowe PATH i CLASSPATH. Zmienną path udało mi się sukcesywnie ustawić (C:/jdk/bin), ale nie mam pojęcia jaką ścieżkę wstawić w wartości Classpath. Wiem że ona ma prowadzić to pliku *.class, ale ja zapisuję te pliki w różnych katalogach (dopiero się uczę, więc robię dużo małych, bzdurnych programików). Tak więc żeby działało, za każdym razem przed uruchomieniem aplikacji muszę w konsoli wpisywać: set CLASSPATH= i on mi wtedy (o ile się nie mylę) ustawia chwilowo zmienną do katalogu, w którym akurat jestem. Czy nie dałoby się tego ustawić tak, żeby zmienna zawsze miała wartość ścieżki do katalogu, w którym jestem? I jak to zrobić?

0

a po co tak?
Zmienna Classpath służy do skazania systemowi gdzie ma szukać maszyny wirtualnej. W twoim przypadku jak piszesz:
c:\katalog_z_projektem\java HelloWord
to classpath wskazuje gdzie trzeba szukać java. Podobnie z kompilatorem javac. Jednak w przypadku kompilatora classpath wskazuje na położenie np. dodatkowych plików jar. Należy wtedy uruchamiać kompilator za pomocą polecenia:

c:\katalog_z_projektem\javac -cp c:\dodatkowe_jary HelloWord.java

Uroczyście obiecuje napisać artykuł jak należy wystartować z javą.

a i zainstaluj sobie eclipsa. będzie ci znacznie łatwiej :)

0

Ale jak napiszę: c:\katalog_z_projektem\java HelloWord
to wtedy wyskakuje mi:
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld
dopiero wpisanie:
set CLASSPATH=</code> sprawia, że aplikacja wyświetla tekst "Hello World"

0

hm... dziwne... jak masz ustawioną zmienną classpath w systemie?
nie głupim pomysłem jest dodanie do zmiennej środowiskowej czegoś takiego:

;C:\katalog_z_java\bin\;.;

szczególnie ta kropka. Oznacza ona bieżący katalog to może się okazać niezłym rozwiązaniem.
Ustawieni zmiennej:
start→Mój Komputer (Prawy PM)→Właściwości→Zaawansowane→Zmienne środowiskowe→PATH

0

Ustawieni zmiennej:
start→Mój Komputer (Prawy PM)→Właściwości→Zaawansowane→Zmienne środowiskowe→PATH

Path już ustawiłam, teraz chodzi mi o Classpath ;-P

A co do Twojej rady: ustawiłam tak, jak pisałeś i faktycznie zadziałało. Wtedy skasowałam tę zmienną żeby zobaczyć czy bez niej też działa. I działa 8-O Nie mam pojęcia czemu teraz działa a wcześniej zwracało błąd skoro ustawienia są identyczne [glowa] (Wcześniej w ogóle nie miałam na liście zmiennych "CLASSPATH", i teraz, po ustawieniu znów ją usunęłam a pomimo to wszystko gra)

0

OK wykład z teorii systemów operacyjnych.

jeżeli w windosie lub linuxie (unixie) odwołujesz się do . to oznacz iż odwołujesz się do bieżącego katalogu. set CLASSPATH który używałaś ustawiał takie odwołanie tylko na czas wykonania następnego polecenia. Zapisanie tego odwołania w zmiennej środowiskowej spowodowało iż odwołanie do . jest stałe.

uff... mam nadzieję ze zrozumiałaś.

Pozdrawiam

0

No dobra, ale ja tą zmienną usunęłam z ustawień systemu (nie ma jej już a więc jak ona może działać?) a to działa tak jakby ona wciąż była...

uff... mam nadzieję ze zrozumiałaś.

I nie mów do mnie w sposób który sugeruje, że uważasz że jestem upośledzona umysłowo lol

0
Moon-Flower napisał(a)

No dobra, ale ja tą zmienną usunęłam z ustawień systemu (nie ma jej już a więc jak ona może działać?) a to działa tak jakby ona wciąż była...

uff... mam nadzieję ze zrozumiałaś.

I nie mów do mnie w sposób który sugeruje, że uważasz że jestem upośledzona umysłowo lol

  1. to jest windows musiało "zaskoczyć" :) spróbuj zrestartować kompa. po takiej operacji jaezeli działa to oznacza że nie ma sie czym przejmować.
  2. raczej sugeruję ze ja nie potrawie pisać po polsku tak by inni zrozumieli :)

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