Ich versuche zu verstehen, wie Klassenpfad wirklich funktioniert. Nachdem ich im Internet gesucht habe, bin ich soweit gekommen:
Ich habe hinzugefügt
%Vor% bei /etc/environment
. Ich betreibe übrigens Ubuntu.
Java findet den Pfad und kompiliert ohne Probleme.
Das Problem ist, dass wenn ich den CLASSPATH ändere und dann: source /etc/environment
, der neue CLASSPATH nicht angewendet wird. Es wird genau dann angewendet, wenn ich das System neu starte. Zum Beispiel, wenn ich das
line, dann mache ich Source / etc / environment und ich mache schließlich echo $CLASSPATH
, was ich bekomme ist /home/foo:/home/foo/Java_code/my_code
. Ich denke, ich sollte eine Leerzeile bekommen, oder?
Gibt es eine Möglichkeit, die Änderungen in PATH- oder CLASSPATH-Variablen sofort anzuwenden, ohne das System neu starten zu müssen?
Vielleicht hilft es Ihnen zu wissen, dass die Datei / etc / environment ursprünglich nur die folgende Zeile enthielt:
%Vor%Danke für Ihre Zeit.
Ich denke, Sie sollten keine Pfade, die ein lokaler zu Ihrem Home-Verzeichnis in einer systemweiten Datei. Ich würde /etc/environment
gut alleine lassen, es sei denn, Sie geben einige Änderungen vor, die für alle Benutzer notwendig oder vorteilhaft sind.
Nehmen Sie Änderungen an CLASSPATH in Ihrem .bashrc
in Ihrem Home-Verzeichnis vor.
Auf diese Weise können Sie es beziehen und jede neu gestartete Bash hat die Einstellungen sofort.
oder besser
%Vor%löscht einen vorhandenen Klassenpfad. Es gibt mehrere Speicherorte, an denen Sie den Klassenpfad festlegen oder aufheben können - ein fehlender Eintrag wird nicht aufgehoben.
Wenn Sie
entfernen %Vor% line und dann source ...
würde den CLASSPATH nicht entfernen, weil er bereits gesetzt wurde. Es löscht die Variablen nicht, die bereits definiert wurden.
Die Datei /etc/environment
ist kein normales Shell-Skript; Es wird nicht als Shell-Skript ausgeführt, wenn Sie auf Ihrem System booten oder sich anmelden. Das Ausführen mit source /etc/environment
ist also nicht dasselbe wie beim normalen Systemstart.
Siehe: Ubuntu-Umgebungsvariablen
/etc/environment
- Diese Datei ist speziell für systemweite Umgebungsvariableneinstellungen gedacht. Es ist keine Skriptdatei , sondern besteht aus Zuweisungsausdrücken, einer pro Zeile. Diese Datei speichert insbesondere die systemweiten Gebietsschema- und Pfadeinstellungen.