Java Klassenpfad - Linux

9

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

lösche %Vor%

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.

    
tomatoeggs 17.02.2012, 14:04
quelle

4 Antworten

5

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.

%Vor%

Auf diese Weise können Sie es beziehen und jede neu gestartete Bash hat die Einstellungen sofort.

    
Mithrandir 17.02.2012, 14:11
quelle
5
%Vor%

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.

    
user unknown 17.02.2012 14:26
quelle
3

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.

    
Sapan Diwakar 17.02.2012 14:08
quelle
2

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.

    
Jesper 17.02.2012 14:09
quelle

Tags und Links