Articles

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.
  • COMPUTENAMEUSERNAME: slaat de computer en de huidige gebruikersnaam op.
  • SystemRoot: de systeemmap.
  • (Windows) HOMEDRIVEHOMEPATH: 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):

  1. Start “Control Panel”
  2. “System”
  3. “Advanced system settings”
  4. schakel over naar “Advanced” tab
  5. “Environment variables”
  6. kies “System Variables” (voor alle gebruikers)
  7. om een nieuwe omgevingsvariabele toe te voegen:
    1. Kies “New”
    2. 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.
  8. om een bestaande omgevingsvariabele te wijzigen:
    1. kies “Bewerken”
    2. 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:

  1. Start “Control Panel”
  2. “System”
  3. “Advanced system settings”
  4. schakel over naar “Advanced” tab
  5. “Environment variables”
  6. onder “System Variables” (voor alle gebruikers) selecteert u “Path”
  7. “Edit”
  8. (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”.
  9. (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 de PATH 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 de PATH. 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 PATHCLASSPATH 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:

  1. 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.jarjre/classes, and others.
  2. 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 via System.out.println(System.getProperty("java.ext.dirs")).

  3. gebruikersklassen zoekpad (in het kort, klasse pad): bepaald in de volgende volgorde:
    1. Defaulted to the current working directory (.).
    2. items in deCLASSPATH omgevingsvariabele, die de standaard overschrijft.
    3. items in de opdrachtregeloptie -cp (of -classpath), die de omgevingsvariabele CLASSPATH overschrijft.
    4. 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 permanente CLASSPATH omgeving in te stellen voor alle Java-toepassingen. IDE (zoals Eclipse/NetBeans) beheert -cp-classpath) voor elk van de toepassingen en vertrouwt niet op de CLASSPATH omgeving.

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)
  1. 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).

  2. 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:

  1. Start “Control Panel”
  2. “System”
  3. “Advanced system settings”
  4. schakel over naar “Advanced” tab
  5. “Environment variables”
  6. kies “System Variables” (voor alle gebruikers)
  7. om een nieuwe omgevingsvariabele toe te voegen “JAVA_HOME“:
    1. Kies “New”
    2. Voer in “variable name” “JAVA_HOME”in.
    3. Klik in” Variable Value “op” Browse Directory…”en navigeer naar de JDK geïnstalleerde map (bijvoorbeeld” C:\Program Files\Java\jdk-15.0.xx“).
    4. OK ⇒ OK ⇒ OK.
  8. om de bestaande “JAVA_HOME” instelling te wijzigen:
    1. Selecteer “JAVA_HOME” ⇒ “Edit”
    2. klik in “Variable Value” op “Blader Directory…”en navigeer naar de JDK geïnstalleerde map (bijvoorbeeld” C:\Program Files\Java\jdk-15.0.xx“).
    3. OK ⇒ OK ⇒ OK.

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 oudere cshksh. Windows heeft twee shells: de nieuwere cmd.exe en de oudere command.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 de PATH. 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 in PATH 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).