Próbuję zrozumieć, jak naprawdę działa ścieżka klas. Po przeszukaniu całego internetu to gdzie doszedłem tak daleko:Ścieżka klasy Java - Linux
Dodałem
export CLASSPATH="/home/foo:/home/foo/Java_code/my_code"
na /etc/environment
. Używam Ubuntu przy okazji.
Java znajduje ścieżkę i kompiluje bez problemu.
Problem polega na tym, że jeśli zmienię CLASSPATH, a następnie: source /etc/environment
, nowa funkcja CLASSPATH nie zostanie zastosowana. Jest stosowany wtedy i tylko wtedy, gdy ponownie uruchomię system. Na przykład, jeśli usunę linię
export CLASSPATH="/home/foo:/home/foo/Java_code/my_code"
, następnie zrobić source/etc/environment, a ja w końcu zrobić echo $CLASSPATH
, co mam jest /home/foo:/home/foo/Java_code/my_code
. Myślę, że powinienem dostać pustą linię, czy nie powinienem?
Czy istnieje sposób na zastosowanie zmian w zmiennych PATH lub CLASSPATH natychmiast, bez konieczności ponownego uruchamiania systemu?
To może pomóc wiedzieć, że plik/etc/environment pierwotnie zawierał tylko następujący wiersz:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
Dziękuję za poświęcony czas.
Jak usuwasz ścieżkę klas? –
dlaczego robisz te wszystkie rzeczy, jakie jest twoje środowisko?/etc/environment służy do definiowania zmiennych środowiskowych dla aplikacji graficznych. Jeśli masz grafikę, możesz użyć IDE. Po co zajmować się tym wszystkim problemami z włączaniem folderu domowego i projektów w ścieżkę klas? – hovanessyan
Po prostu próbuję na stałe ustawić CLASSPATH w celu zaimportowania pakietów z określonych folderów bez konieczności definiowania go za każdym razem, gdy uruchamiam javac. – tomatoeggs