Verschil tussen Java System.getProperty en System.getenv?

Verschil Tussen Java System Getproperty En System Getenv



De ' Systeem.getProperty() ”-methode haalt de specifieke systeemeigenschappen op die overeenkomen met de Java-runtime of de systeemconfiguratie. Het biedt informatie over de Java-omgeving en de besturingssystemen voor het systeem waarop het wordt uitgevoerd. Aan de andere kant, de “ Systeem.getenv() ”methode geeft toegang tot de specifieke omgevingsvariabelen die zijn gedefinieerd in de OS-omgeving. Het bevat dynamische informatie over het systeem en de huidige gebruikerssessie.

In deze blog wordt het verschil uitgelegd tussen de Java System.getProperty()- en System.getenv()-methoden.

Wat is de methode System.getProperty() in Java?

De ' Systeem.getProperty() ” methode retourneert de waarde die is gekoppeld aan de opgegeven systeemeigenschap. Het bestaat uit een “ sleutel waarde ” paarformaat, zoals ze zijn gedefinieerd door de systeembeheerder of in configuratiebestanden. De eigenschap kan worden ingesteld met behulp van de ' -D ” vlag of als de eigenschap niet wordt gevonden, de “ nul ” wordt teruggestuurd. Hierin worden de standaard of meest gebruikte systeemeigenschappen en hun beschrijving beschreven koppeling .







Sommige systeemeigenschappen worden gebruikt in het onderstaande codefragment:



Sommige systeemeigenschappen worden gebruikt in het onderstaande codefragment:



klas ouder {
//De drivermethode initialiseren
openbaar statisch leegte voornaamst ( Snaar [ ] argumenten ) {
Snaar gebruikersnaam = Systeem. krijg eigendom ( 'gebruikersnaam' ) ;
Systeem. uit . println ( 'Gebruikersnaam met behulp van systeemeigenschap: ' + gebruikersnaam ) ;

Snaar classPath = Systeem. krijg eigendom ( 'java.klasse.pad' ) ;
Systeem. uit . println ( 'Het huidige klassenpad vanuit de hoofdmap: ' + classPath ) ;

Systeem. uit . println ( 'Verkeerde eigenschap wordt gebruikt: ' + Systeem. krijg eigendom ( 'thuis' ) ) ;

Systeem. uit . println ( 'De JRE-versie-informatie: ' + Systeem. krijg eigendom ( 'java.runtime.versie' ) ) ;
Systeem. uit . println ( 'De architectuur van het huidige besturingssysteem: ' + Systeem. krijg eigendom ( 'os.arch' ) ) ;
}
}

Beschrijving van de bovenstaande code:





  • Eerst wordt de echte eigenaar of gebruiker van het systeem achterhaald door de “ gebruikersnaam ” woning in de “ Systeem.getProperty() ” methode.
  • Vervolgens het pand “ java.klasse.pad ” wordt doorgegeven aan de “ Systeem.getProperty() ” methode om het pad van de huidige klasse op te halen uit de hoofdmap.
  • Dan, de valse eigenschap van ' thuis ” is voorbij,
  • De ' Systeem.getProperty() ' methode wordt weergegeven ' nul ” wat aangeeft dat het pand niet bestaat.
  • Op dezelfde manier worden de Java Runtime-versie en systeemarchitectuur opgehaald door de ' java.runtime.versie ' En ' os.arch ”, respectievelijk.

De uitvoer toont de vereiste waarden voor systeemeigenschappen die zijn opgehaald met behulp van de methode 'System.getProperty()'.



Wat is de methode System.getenv() in Java?

De ' Systeem.getenv() ” methode retourneert de corresponderende waarde voor de opgegeven omgevingsvariabele. De geretourneerde waarden zijn dynamisch en worden ingesteld door het besturingssysteem van het systeem of door de gebruiker voor de huidige sessie. Net als de methode 'System.getProperty()' als de variabele niet wordt gevonden of geen waarde bevat, wordt de ' nul ” wordt teruggestuurd.

Bezoek bijvoorbeeld de onderstaande code:

klas wortelklasse {
//De drivermethode initialiseren
openbaar statisch leegte voornaamst ( Snaar [ ] argumenten ) {
Systeem. uit . println ( 'Ophalen van waarden met de methode System.getenv()' ) ;

Snaar tijdelijk Pad = Systeem. getenv ( 'TEMP' ) ;
Systeem. uit . println ( 'Het pad voor de map met tijdelijke bestanden is: ' + tijdelijk Pad ) ;

Snaar besturingssysteem = Systeem. getenv ( 'NUMBER_OF_PROCESSORS' ) ;
Systeem. uit . println ( 'Het aantal processors Systeem bevat: ' + besturingssysteem ) ;

Snaar windowsDirectory = Systeem. getenv ( 'winder' ) ;
Systeem. uit . println ( 'Het systeemhoofdpad weergeven - ' + windowsDirectory ) ;
}
}

Uitleg van het bovenstaande codeblok:

  • Eerst wordt de klasse gemaakt met de naam ' wortelklasse ' en de ' Systeem.getenv() ” methode wordt gebruikt om het pad van de tijdelijke map terug te geven door de “ TEMP ” als een waarde.
  • Vervolgens wordt het aantal processors en de Windows-directory voor het systeem opgehaald door “ NUMBER_OF_PROCESSOREN ' En ' windir 'naar respectievelijk de methode 'System.getenv()'.

Na de compilatie:

De uitvoer bevestigt dat de vereiste waarden voor omgevingsvariabelen zijn opgehaald.

Verschil tussen Java System.getProperty en System.getenv

Het verschil tussen de methoden System.getProperty() en System.getenv() wordt hieronder in de tabel beschreven:

Termijn Systeem.getProperty() Systeem.getenv()
Doel Het wordt gebruikt om systeemeigenschappen op te halen die specifiek zijn voor de JVM. Het wordt gebruikt om omgevingsvariabelen op te halen die specifiek zijn voor de besturingssysteemomgeving.
Bron Systeemeigenschappen worden doorgaans ingesteld als opdrachtregelargumenten. Omgevingsvariabelen worden ingesteld in de OS-omgeving.
Toegang Het kan zowel systeemeigenschappen als omgevingsvariabelen ophalen. Het kan alleen omgevingsvariabelen ophalen en vereist specifieke sleutels voor de variabele.
Gebruik Het wordt vaak gebruikt om informatie over de JVM op te halen, zoals de Java-versie. Het wordt vaak gebruikt om toegang te krijgen tot omgevingsspecifieke configuraties of gevoelige informatie.
Draagbaarheid Het is platformonafhankelijk en consistent toegankelijk via verschillende besturingssystemen. Variabelen kunnen variëren tussen verschillende besturingssystemen en kunnen verschillend gedrag vertonen.

Conclusie

De ' Systeem.getProperty() ” methode heeft toegang tot Java-specifieke eigenschappen en systeemconfiguratie. De ' Systeem.getenv() ” geeft toegang tot omgevingsvariabelen die zijn gedefinieerd in het besturingssysteem. Beide zijn echter geschikt voor het retourneren van systeemgerelateerde informatie. Bovendien hebben ze vergelijkbare doeleinden voor het ophalen van informatie over de systeemomgeving, maar ze werken op verschillende gegevenssets.