omgevingsvariabelen in Windows/macOS/Linux
Wat zijn omgevingsvariabelen?
omgevingsvariabelen zijn globale systeemvariabelen die toegankelijk zijn voor alle processen / gebruikers die draaien onder het besturingssysteem (OS), zoals Windows, macOS en Linux. Omgevingsvariabelen zijn nuttig om systeembrede waarden op te slaan, bijvoorbeeld
-
PATH
: de meest gebruikte omgevingsvariabele, die een lijst van mappen opslaat om naar uitvoerbare programma ‘ s te zoeken. -
OS
: het besturingssysteem. -
COMPUTENAME
USERNAME
: slaat de computer en de huidige gebruikersnaam op. -
SystemRoot
: de systeemmap. - (Windows)
HOMEDRIVE
HOMEPATH
: de persoonlijke map van de huidige gebruiker.
(Windows) omgevingsvariabelen
omgevingsvariabelen in Windows zijn niet hoofdlettergevoelig (omdat het oudere DOS niet hoofdlettergevoelig is). Ze worden meestal genoemd in hoofdletters, met woorden gecombineerd met underscore (_
), bijvoorbeeld JAVA_HOME
.
omgevingsvariabelen en hun waarden weergeven
om alle omgevingsvariabelen en hun waarden weer te geven, start u een CMD en geeft u het commando “set
“, als volgt,
// Display all the variables (in NAME=VALUE pairs)setCOMPUTERNAME=xxxxxxxOS=xxxxxxxPATH=xxxxxxx.......
probeer een “set
” commando op uw systeem uit en bestudeer de omgeving variabelen vermeld. Besteed bijzondere aandacht aan de variabele genaamd PATH
.
om een bepaalde variabele weer te geven, gebruik je commando “set varname
“, of “echo %varname%
“:
// Display a particular variableset COMPUTERNAMECOMPUTERNAME=xxxxxx// or, use "echo" command with variable name enclosed within a pair of '%'echo %COMPUTERNAME%COMPUTERNAME=xxxxxx
een omgevingsvariabele instellen/uitschakelen voor de “huidige” cmd-sessie
om een omgevingsvariabele in te stellen (of te wijzigen), gebruik je commando “set varname=value
“. Er mogen geen spaties zijn voor en na het teken '='
. Om een omgevingsvariabele uit te zetten, gebruik je “set varname=
“, d.w.z. stel het in op een lege tekenreeks.
set varnameset varname=valueset varname=set |
Display the value of the variableSet or change the value of the variable (Note: no space before and after '=')Delete the variable by setting to empty string (Note: nothing after '=')Display ALL the environment variables |
For examples,
// Set an environment variable called MY_VARset MY_VAR=hello // Displayset MY_VARMY_VAR=hello // Unset an environment variableset MY_VAR= // Displayset MY_VAREnvironment variable MY_VAR not defined
An environment variable set via the “set
” command under CMD is a local, available to the current CMD session only. Try setting a variable, re-start CMD and look for the variable.
gebruik een omgevingsvariabele
om naar een variabele in Windows te verwijzen, gebruik %varname%
(met voorvoegsel en achtervoegsel van '%'
). U kunt bijvoorbeeld de opdracht echo
gebruiken om de waarde van een variabele af te drukken in de vorm “echo %varname%
“.
// Display the PATH environment variableecho %PATH%PATH=xxxxxxx // Append a directory in front of the existing PATHset PATH=c:\myBin;%PATH%PATH=c:\myBin;
een omgevingsvariabele toevoegen of wijzigen “permanent”
een omgevingsvariabele permanent toevoegen/wijzigen in Windows (zodat deze beschikbaar is voor alle processen/gebruikers van Windows en over opstartservers blijft):
- Start “Control Panel”
- “System”
- “Advanced system settings”
- schakel over naar “Advanced” tab
- “Environment variables”
- kies “System Variables” (voor alle gebruikers)
- om een nieuwe omgevingsvariabele toe te voegen:
- Kies “New”
- Voer de variabele “Name” en “Value”in. In plaats van het typen van de “waarde” en het maken van typefout, stel ik voor dat u “Browse Directory…”of” blader bestand…”knop om de gewenste map of bestand op te halen.
- om een bestaande omgevingsvariabele te wijzigen:
- kies “Bewerken”
- Voer de nieuwe “waarde” in. In plaats van het typen van de “waarde” en het maken van typefout, stel ik voor dat u “Browse Directory…”of” blader bestand…”knop om de gewenste map of bestand op te halen.
U moet cmd opnieuw starten voordat de nieuwe instelling van kracht wordt!
om de nieuwe instelling te verifiëren, start u CMD:
set VAR_NAMEVAR_NAME=VAR_VALUE
PATH omgevingsvariabele in Windows
wanneer u een uitvoerbaar programma start (met de bestandsextensie “.exe
.bat
” of “.com
“) van de CMD Shell, Windows zoekt naar het uitvoerbare programma in de huidige werkmap, gevolgd door alle mappen in de PATH
omgevingsvariabele. Als het programma niet in deze mappen kan worden gevonden, krijgt u de volgende fout:
// (Windows 2000/XP/Vista/7/8/10) "cmd.exe"abc'abc' is not recognized as an internal or external command,operable program or batch file. // (Windows 95/98) "command.com"abcBad command or file name
om de huidige PATH
, issue command:
PATHPATH=path1;path1;path3;...
een Map toevoegen aan het pad in Windows
een map toevoegen aan de bestaande PATH
in Windows:
- Start “Control Panel”
- “System”
- “Advanced system settings”
- schakel over naar “Advanced” tab
- “Environment variables”
- onder “System Variables” (voor alle gebruikers) selecteert u “Path”
- “Edit”
- (voor nieuwere Windows 10) verschijnt een tabel met de mappen in de huidige PADINSTELLING ⇒ “New” ⇒ “bladeren…”om de gewenste map te selecteren die moet worden toegevoegd aan het pad (niet typen als je typo fout zal maken!) ⇒ Klik herhaaldelijk op “Omhoog” om het naar de top te verplaatsen ⇒ “OK” (niet “Annuleren”) ⇒ ” OK ” ⇒ “OK”.
- (voor oudere Windows) als u geen pop-up tabel hebt gezien, is het tijd om van computer te veranderen.
U moet cmd opnieuw starten om de instelling voor het nieuwe pad te laten werken!
om de nieuwe instelling te verifiëren, start u CMD:
PATHPATH=path1;path2;path3;...
opmerkingen:
- Windows doorzoekt de huidige map (
.
) voordat u dePATH
zoekt. (Unixes / macOS zoekt niet in de huidige map, tenzij u deze expliciet in het pad opneemt.) - Windows gebruikt puntkomma (
;
) als scheidingsteken voor het pad; terwijl Unixes / macOS dubbele punt gebruikt (:
). - als uw mapnaam speciale tekens bevat, zoals spatie (sterk afgeraden), wordt deze ingesloten met dubbele aanhalingstekens.
(macOS/Linux) omgevingsvariabelen
omgevingsvariabelen in macOS / Unixes zijn hoofdlettergevoelig. Globale omgevingsvariabelen (beschikbaar voor alle processen) worden genoemd in hoofdletters, met woorden gecombineerd met underscore (_
), bijvoorbeeld JAVA_HOME
. Lokale variabelen (alleen beschikbaar voor het huidige proces)zijn in kleine letters.
met omgevingsvariabelen in Bash-Shell
De meeste Unixen (Ubuntu / macOS) gebruiken de zogenaamde Bash-shell. Onder bash
shell:
- om alle omgevingsvariabelen te tonen, gebruik je het commando”
env
“(of”printenv
“). U kunt ook “set
” gebruiken om alle variabelen te tonen, inclusief alle lokale variabelen. - om naar een variabele te verwijzen, gebruik
$varname
, met een voorvoegsel'$'
(Windows gebruikt%varname%
). - om de waarde van een bepaalde variabele af te drukken, gebruik je het commando “
echo $varname
“. - om een omgevingsvariabele in te stellen, gebruik je het commando “
export varname=value
“, dat de variabele instelt en exporteert naar de globale omgeving (beschikbaar voor andere processen). Ingesloten de waarde met dubbele aanhalingstekens als het spaties bevat. - om een lokale variabele in te stellen, gebruik je het commando “
varname
=value
” (of “set
varname
=value
“). Lokale variabele is alleen beschikbaar binnen dit proces. - om een lokale variabele uit te zetten, gebruik je het commando “
varname
=
“, dat wil zeggen, zet de lege tekenreeks in (of “unset
varname
“).
een omgevingsvariabele permanent instellen in Bash Shell
U kunt een omgevingsvariabele permanent instellen door een export
commando in het opstartscript van uw Bash shell te plaatsen “~/.bashrc
” (of "~/.bash_profile
“, of “~/.profile
“) van uw persoonlijke map; of “/etc/profile
” voor systeembrede bewerkingen. Let op dat bestanden die beginnen met dot (.
) standaard verborgen zijn. Om verborgen bestanden weer te geven, gebruik je het commando “ls -a
” of “ls -al
“.
bijvoorbeeld, voor het toevoegen van een map in de map PATH
omgevingsvariabele, voeg de volgende regel toe aan het einde van de "~/.bashrc
” (of "~/.bash_profile
” of “~/.profile
“), waar ~
staat voor de homedirectory van de huidige gebruiker, of “/etc/profile
” voor ALLE gebruikers.
// Append a directory in front of the existing PATHexport PATH=/usr/local/mysql/bin:$PATH
(voor Java) u kunt de CLASSPATH
omgevingsvariabelen instellen door de volgende regel toe te voegen. Bijvoorbeeld,
export CLASSPATH=.:/usr/local/tomcat/lib/servlet-api.jar
merk op dat Bash shell colon (:
) als scheidingsteken gebruikt; terwijl windows puntkomma (;
) gebruikt.
om de Bash shell te vernieuwen, geeft u een “source
” commando uit (of start de bash shell opnieuw):
// Refresh the bash shellsource ~/.bashrc// orsource ~/.bash_profilesource ~/.profilesource /etc/profile
(Notes) voor de oudere csh (C-shell) en KSH (Korn-shell)
- gebruik”
printenv
“(of”env
“) om alle omgevingsvariabelen te tonen. - gebruik “
setenv varname value
“en”unsetenv varname
” om een omgevingsvariabele in te stellen en uit te zetten. - gebruik “
set varname=value
“en”unset varname
” om een lokale variabele in te stellen en uit te zetten voor het huidige proces.
PATH omgevingsvariabele
De meeste Unixen en macOS gebruiken de zogenaamde Bash Shell in de “Terminal”. Wanneer u een uitvoerbaar programma start (met bestandsrechten van uitvoerbaar) in een bash shell, zoekt het systeem het programma in alle mappen die vermeld staan in de PATH
. Als het programma niet kan worden gevonden, krijgt u de volgende fout:
abcbash: abc: command not found
let op dat de huidige map (.
) niet wordt doorzocht, tenzij het is opgenomen in de PATH
. Om een programma in de huidige map uit te voeren, moet u het huidige pad opnemen (./
), bijvoorbeeld
./myProgram
om de huidige PATH
, issue Commando:
echo $PATHpath1:path2:path3:...
het Toevoegen van een Map in het PAD in mac os/Linux
toevoegen een map met de bestaande PATH
in macOS/Unices, voeg de volgende regel toe aan het einde van een van de startup scripts, zoals "~/.bashrc
~/.login
"~/.bash_profile
~/.profile
” (waarin ~
staat voor de homedirectory van de huidige gebruiker) of “/etc/profile
” voor ALLE gebruikers.
// Append a directory in front of the existing PATHexport PATH=/path/to/dir:$PATH
Voor het vernieuwen van de bash-shell, een “source
” commando (of opnieuw start van de bash-shell):
// Refresh the bash shellsource ~/.bashrc// orsource ~/.bash_profilesource ~/.profilesource /etc/profile
om Te controleren of de nieuwe instelling, start CMD:
echo $PATHpath1:path2:path3:...
Opmerkingen:
- Unices/macOS niet zoeken in de huidige directory (
.
), tenzij u het expliciet in dePATH
. Met andere woorden, om een programma in de huidige map uit te voeren, moet u de map opgeven (./
), bijvoorbeeld./myProgram
U kunt de huidige map opnemen in het
PATH
, door deze regel toe te voegen aan een opstartscript:// Append the current directory (.) in front of the existing PATHexport PATH=.:$PATH
(Windows doorzoekt de huidige map (
.
) automatisch voordat het pad wordt doorzocht.) - Unixes / macOS gebruikt colon (
:
) als scheidingsteken; terwijl Windows puntkomma gebruikt (;
).
Java-toepassingen en de omgevingsvariabelen PATH, CLASSPATH, JAVA_HOME
veel problemen bij de installatie en het draaien van Java-toepassingen worden veroorzaakt door onjuiste instelling van omgevingsvariabelen (globale systeemvariabelen beschikbaar voor alle processen/gebruikers die onder het besturingssysteem draaien), in het bijzonder PATH
CLASSPATH
en JAVA_HOME
.
pad
wanneer u een programma start vanaf de opdrachtregel, gebruikt het besturingssysteem de PATH
omgevingsvariabele om naar het programma te zoeken in uw lokale bestandssysteem. Met andere woorden, PATH
onderhoudt een lijst van mappen voor het zoeken naar uitvoerbare programma ‘ s.
Pad (Voor Windows)
wanneer u een uitvoerbaar programma start (met de extensie “.exe
.bat
” of “.com
“) vanuit de CMD shell, zoekt Windows naar het uitvoerbare programma in de huidige werkmap, gevolgd door alle mappen in de PATH
omgevingsvariabele. Als het programma niet in deze mappen kan worden gevonden, krijgt u de volgende fout:
// (Windows 2000/XP/Vista/7/8/10) "cmd.exe"abc'abc' is not recognized as an internal or external command,operable program or batch file. // (Windows 95/98) "command.com"abcBad command or file name
bijvoorbeeld, als u probeert te gebruiken op de Java-Compiler “javac.exe
” voor het samenstellen van een Java-bestand, maar “javac.exe
‘ kan niet worden gevonden in de huidige map en alle mappen in de PATH
, ontvangt u het volgende foutbericht:
javac Hello.java'javac' is not recognized as an internal or external command,operable program or batch file.
PATH
onderhoudt een lijst van mappen. De mappen worden gescheiden door een puntkomma (;
) in Windows.
voor Java-toepassingen moet PATH
de volgende mappen bevatten:
- JDK ‘ s “
bin
” (binary) directory (bijv. “c:\Program Files\java\jdk1.x.x\bin
“), die JDK-programma ‘ s bevat zoals Java Compiler “javac.exe
” en Java Runtime “java.exe
“. - “
c:\windows\system32
“en”c:\windows
“die consoleprogramma’ s en commando ‘ s bevatten.
de JDK ‘s”bin
“map moet worden vermeld voor”c:\windows\system32
“en”c:\windows
“in de PATH
. Dit komt omdat sommige oudere Windows-systemen hun eigen Java runtime (die vaak verouderd is) in deze mappen (probeer te zoeken naar “java.exe
” in uw computer, kunt u een paar items vinden).
om een map (bijvoorbeeld JDK ‘ s “bin
“) aan het bestaande pad toe te voegen, vinkt u “hoe voeg ik een map toe aan het pad”aan.
pad (voor macOS/Linux)
De meeste Unixen en macOS gebruiken de zogenaamde Bash Shell in de “Terminal”. Wanneer u een uitvoerbaar programma start (met bestandsrechten van uitvoerbaar) in een bash shell, zoekt het systeem het programma in alle mappen die vermeld staan in de PATH
. Als het programma niet gevonden kan worden, krijgt u de volgende fout:
abcbash: abc: command not found
bijvoorbeeld, als u Java Compiler probeert te gebruiken “javac
” om een Java bronbestand te compileren, maar “javac
” kan niet gevonden worden in de lijst van mappen in de PATH
, u krijgt de volgende fout:
javac Hello.javabash: javac: command not found
om Java-toepassingen te ondersteunen, moet u de JDK ‘s”bin
” (binary) map in het pad opnemen. Zie “een map toevoegen aan het pad”.
CLASSPATH
Java Archive (JAR) File
Voor het gemak van distributie worden Java-klassen vaak samen gearchiveerd (gezipt) in een zogenaamd JAR-bestand. Als u een Java-pakket van derden wilt gebruiken, moet u het gedistribueerde JAR-Bestand plaatsen op een locatie die beschikbaar is voor de Java-Compiler en Java Runtime.
Hoe worden klassen gevonden?
Java Compiler (“javac
“), Java Runtime (“java
“) and other Java tools searches for classes used in your program in this order:
- Java platform (bootstrap) classes: include system classes in core packages (
java.*
) and extension packages (javax.*
) in “rt.jar
” (runtime class), “i18n.jar
” (internationalization class),charsets.jar
jre/classes
, and others. - Java Extension Directories: U kunt de externe JAR-bestanden kopiëren naar Java Extension Directory (dit wordt verwijderd en niet van toepassing vanaf JDK 10).
- Voor Windows bevindt de Java-extensie zich op “
<JAVA_HOME>\jre\lib\ext
“(bijvoorbeeld”c:\Program Files\Java\jdk1.7.0_{xx}\jre\lib\ext
“). - voor macOS zijn de JDK-extensiemappen “
/Library/Java/Extensions
“en”/System/Library/Java/Extensions
“. - Voor Ubuntu zijn de JDK-extensiemappen “
<JAVA_HOME>/jre/lib/ext
“(bijvoorbeeld”/usr/user/java/jdk1.7.0_{xx}/jre/lib/ext
“) en”/usr/java/packages/lib/ext
“.
de locatie van Java ’s Extensiemappen wordt bewaard in Java’ s systeemeigenschap “
java.ext.dirs
“. U kunt de inhoud afdrukken viaSystem.out.println(System.getProperty("java.ext.dirs"))
. - Voor Windows bevindt de Java-extensie zich op “
- gebruikersklassen zoekpad (in het kort, klasse pad): bepaald in de volgende volgorde:
- Defaulted to the current working directory (
.
). - items in de
CLASSPATH
omgevingsvariabele, die de standaard overschrijft. - items in de opdrachtregeloptie
-cp
(of-classpath
), die de omgevingsvariabeleCLASSPATH
overschrijft. - de opdrachtregeloptie runtime
-jar
, die alle bovenstaande overschrijven.
de gebruikersklasse paden worden bewaard in Java System property “
java.class.path
“.
Het wordt aanbevolen dat u de opdrachtregeloptie-cp
(of-classpath
) gebruikt (aangepast voor elk van uw toepassingen), in plaats van een permanenteCLASSPATH
omgeving in te stellen voor alle Java-toepassingen. IDE (zoals Eclipse/NetBeans) beheert-cp
-classpath
) voor elk van de toepassingen en vertrouwt niet op deCLASSPATH
omgeving. - Defaulted to the current working directory (
kan klassen
niet vinden als de Java Runtime (“java
“) de klassen die in uw programma worden gebruikt op alle bovenstaande plaatsen niet kan vinden, zal het fout geven “kan Hoofdklasse xxxx niet vinden of Laden” (JDK 1.7) of “java.lang.NoClassDefFoundError ” (voorafgaand aan JDK 1.7).
evenzo zal Java Compiler (“javac
“) compilatiefouten geven zoals “Kan symbool niet vinden”, “pakket bestaat niet”.
opmerkingen: Externe native bibliotheken (“.lib
.dll
.a
.so
“) zijn te vinden in een pad in JRE ‘ s eigenschap “java.library.path
“, die normaal maar niet noodzakelijk alle mappen in de PATH
omgevingsvariabele bevat. Anders krijgt u een runtime-fout “java.lang.UnsatisfiedLinkError: no xxx in java.library.path
“.
CLASSPATH omgevingsvariabele
de CLASSPATH
omgevingsvariabele kan directory ‘ s bevatten (die veel klasse-bestanden bevatten) en JAR-bestanden (een enkel bestand van klasse-bestanden). Als CLASSPATH
niet is ingesteld, wordt het standaard ingesteld op de huidige map. Als u CLASSPATH
instelt, is het belangrijk om de huidige werkmap op te nemen (.
). Anders wordt de huidige map niet doorzocht.
een veel voorkomend probleem bij het uitvoeren van hello-world programma is: CLASSPATH
is ingesteld, maar bevat de huidige werkmap niet. De huidige map wordt daarom niet doorzocht, wat resulteert in”Error: kon Hoofdklasse Hallo niet vinden of Laden”. U kunt eenvoudig de CLASSPATH
verwijderen, en het class path standaard laten staan in de huidige map.
voor een beginner is geen explicieteCLASSPATH
instelling vereist. De standaardCLASSPATH
instelling van de huidige map is voldoende. Verwijder alleCLASSPATH
instelling als die er is. Als u echter CLASSPATH
moet instellen, zorg er dan voor dat u de huidige map '.'
opneemt.
de PATH
omgevingsvariabele (voor het doorzoeken van uitvoerbare programma ‘ s) is van toepassing op alle toepassingen; terwijl CLASSPATH
alleen door Java wordt gebruikt.
Lees JDK-documenten “het instellen van de CLASSPATH
“en” hoe klassen worden gevonden ” (U kunt de hyperlinks vinden op de indexpagina van de JDK-documentatie, of googlen).
CLASSPATH omgevingsvariabele (Voor Windows)
deCLASSPATH
accepteert mappen en jar-bestanden. Padingangen worden gescheiden door een puntkomma (;
).
voorbeeld: CLASSPATH
weergeven en wijzigen voor de huidige cmd-sessie.
// Display current setting of CLASSPATHset CLASSPATH // Set CLASSPATH to the current directory and a JAR fileset CLASSPATH=.;d:\tomcat\lib\servlet-api.jar
u kunt de CLASSPATH
permanent instellen. Zie “een omgevingsvariabele instellen”.
CLASSPATH (voor macOS/Ubuntu)
- om de
CLASSPATH
in te stellen voor de huidige sessie, voer dit commando uit:export CLASSPATH=.:/usr/local/tomcat/bin/servlet-api.jar
gebruik dubbele punt ‘
:
‘ als scheidingsteken (in plaats van puntkomma ‘;
‘ in Windows). - om de
CLASSPATH
permanent in te stellen, plaatst u het bovenstaande export commando in het bash shell initialisatie script (.bashrc
of.bash_profile
van de home directory of/etc/profile
voor alle gebruikers). Zie “een Envrionment Variabele instellen”.
JAVA_HOME en JRE_HOME
veel Java-toepassingen (zoals Tomcat) vereisen dat de omgevingsvariabele JAVA_HOME
wordt ingesteld op de JDK geïnstalleerde map.
JAVA_HOME instellen in Windows
controleer eerst of JAVA_HOME
al is ingesteld door een CMD te starten en probleem:
set JAVA_HOME
als JAVA_HOME
niet is ingesteld, ontvangt u”omgevingsvariabele JAVA_HOME niet gedefinieerd”. Anders wordt de huidige instelling weergegeven.
instellen/wijzigenJAVA_HOME
in Windows:
- Start “Control Panel”
- “System”
- “Advanced system settings”
- schakel over naar “Advanced” tab
- “Environment variables”
- kies “System Variables” (voor alle gebruikers)
- om een nieuwe omgevingsvariabele toe te voegen “
JAVA_HOME
“:- Kies “New”
- Voer in “variable name” “JAVA_HOME”in.
- Klik in” Variable Value “op” Browse Directory…”en navigeer naar de JDK geïnstalleerde map (bijvoorbeeld”
C:\Program Files\Java\jdk-15.0.xx
“). - OK ⇒ OK ⇒ OK.
- om de bestaande “
JAVA_HOME
” instelling te wijzigen:- Selecteer “
JAVA_HOME
” ⇒ “Edit” - klik in “Variable Value” op “Blader Directory…”en navigeer naar de JDK geïnstalleerde map (bijvoorbeeld”
C:\Program Files\Java\jdk-15.0.xx
“). - OK ⇒ OK ⇒ OK.
- Selecteer “
U moet cmd opnieuw starten voordat de nieuwe instelling van kracht wordt!
om de nieuwe instelling te verifiëren, herstart CMD:
set JAVA_HOMEJAVA_NAME=C:\Program Files\Java\jdk-13.0.1
JAVA_HOME instellen in Linux/macOS (Bash Shell)
controleer eerst of JAVA_HOME
al is ingesteld door een terminal te starten en probleem:
echo $JAVA_HOME
JAVA_HOME
moet worden ingesteld op de JDK geïnstalleerde map. Je moet je JDK geïnstalleerde directory vinden.
zoek macOS en Ubuntu JDK geïnstalleerde map.
voeg de volgende regel toe aan het einde van "~/.bashrc
” (of “~/.login
“). Merk op dat bestandsnaam beginnend met dot (.
) standaard verborgen is.
un-hide voor macOS/Ubuntu.
export JAVA_HOME=/path/to/JDK-installed-directory
u moet de Bash shell vernieuwen voordat de nieuwe instellingen effect hebben. Geef een opdracht “source
” als volgt uit:
// Refresh the Bash Shellsource ~/.bashrc // or "source ~/.login"// Verify the new settingecho $JAVA_HOME
Windows vs.Unixes/macOS
Java is platformonafhankelijk. Java-klassen draaien in zowel Windows als Unixes-binair compatibel.
- Unixen hebben veel shells, zoals de nieuwere
bash
en de ouderecsh
ksh
. Windows heeft twee shells: de nieuwerecmd.exe
en de ouderecommand.com
. Elke shell wordt geleverd met zijn eigen set van commando ‘s, Hulpprogramma’ s, en zijn eigen scripting programmeertaal. - De Variabele naam van Unix wordt aangeduid als
$varname
, bijvoorbeeld$CLASSPATH
. Windows gebruikt%varname%
, bijvoorbeeld%CLASSPATH%
. - Unix uses command “
printenv
” (print environment) or “env
” to list all the environment variables. Windows uses command “set
“. - Unix’s
PATH
is set permanently in the login or shell initialization script (e.g., “~/.login
~/.profile
~/.bashrc
~/.bash_profile
“, or “/etc/profile
“). Windows’PATH
is set permanently via Control Panel ⇒ System ⇒ …. - de huidige map is niet impliciet opgenomen in
PATH
. Om een programma in de huidige map uit te voeren, moet u “./programName
” geven, waarbij “.
” de huidige map aangeeft. Het wordt aanbevolen om de huidige map (.
) expliciet op te nemen in dePATH
. Aan de andere kant is de huidige map impliciet opgenomen in Windows’PATH
. - een Windows-pad bevat een stationsletter en mappen. Elke schijf heeft een hoofdmap. Het gebruikt back-slash
'\'
als directory scheidingsteken (bijvoorbeeld “c:\jdk1.6\bin
“). Linux ‘ s paden hebben geen stationsletter. Er is één wortel. Unix gebruikt forward slash'/'
als het directory scheidingsteken (bijvoorbeeld”/usr/bin/jdk1.6
“). - Windows gebruiken puntkomma
';'
als scheidingsteken (bijvoorbeeld inPATH
omgevingsvariabele), terwijl Unix dubbele punt':'
gebruikt. - Windows / DOS gebruikt “
0D0AH
” (carriage-return plus line-feed) Als line-break (of End-Of-Line (EOL), of newline). Unixes / macOS gebruikt alleen”0AH
” (line-feed).
Leave a Reply