Visualizzazione dei risultati da 1 a 6 su 6

Discussione: variabile ambiente

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    76

    variabile ambiente

    ciao ragazzi, sto sviluppando un SW nel quale faccio uso di librerie dll che carico nel mio programma con l'istruzione System.load.Tutto funziona bene, ma per utilizzare tali dll devo andate a settare la variabile d'ambiente path al path effettivo dove sono collocate le librerie(..tra l'altro non mi aspettavo tale comportamento, visto che nel System.load specifico il path nel quale andare a recuperare le dll..).Per evitare che su ogni sistema dove si eseguirà il file jar l'utente debbe manualmente andare a settare le variabli di ambiente, come posso fare cablare l'istruzione di settaggio direttamente nel codice java?GRAZIE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: variabile ambiente

    Originariamente inviato da alf83
    ciao ragazzi, sto sviluppando un SW nel quale faccio uso di librerie dll che carico nel mio programma con l'istruzione System.load.Tutto funziona bene, ma per utilizzare tali dll devo andate a settare la variabile d'ambiente path al path effettivo dove sono collocate le librerie(..tra l'altro non mi aspettavo tale comportamento, visto che nel System.load specifico il path nel quale andare a recuperare le dll..).Per evitare che su ogni sistema dove si eseguirà il file jar l'utente debbe manualmente andare a settare le variabli di ambiente, come posso fare cablare l'istruzione di settaggio direttamente nel codice java?GRAZIE
    Sono librerie che sfruttano JNI, giusto?? In genere per questo tipo di librerie si usa loadLibrary(), non load().

    La differenza la spiega la documentazione. Per load() "The filename argument must be a complete path name", per loadLibrary() "The manner in which a library name is mapped to the actual system library is system dependent." (che in genere vuol dire che si basa sul PATH).

    Comunque se usi loadLibrary() e le librerie le metti nella stessa directory dove hai il jar (e ammesso che la directory corrente all'avvio sia quella) non dovrebbero esserci problemi.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    76
    grazie della risposta...un'altra domanda sempre sullo stesso argomento ma un po diversa...come si fa a settare da codice una variabile d'ambiente? (per capirci vorrei, se possibile, che da codice si potesse impostare una variabile t.c. se poi clicco co il destro su risorse del computer, avanzate, variabili di ambiente me la ritrovo proprio li...grazie).

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da alf83
    grazie della risposta...un'altra domanda sempre sullo stesso argomento ma un po diversa...come si fa a settare da codice una variabile d'ambiente? (per capirci vorrei, se possibile, che da codice si potesse impostare una variabile t.c. se poi clicco co il destro su risorse del computer, avanzate, variabili di ambiente me la ritrovo proprio li...grazie).
    Innanzitutto le variabili di ambiente passano solo da un processo padre ad un processo figlio, non il contrario.

    In una applicazione Java puoi leggere le variabili di ambiente usando getenv() di System. Ci sono 2 versioni: una fornisce una Map non modificabile e l'altra ritorna un singolo valore.

    La questione però è questa: usando altri linguaggi es. C, C++ si possono settare le variabili di ambiente del proprio processo che poi saranno "ereditate" da eventuali processi figli.

    In Java non puoi cambiare le variabili di ambiente del processo della JVM. Puoi solo eventualmente passare un blocco di variabili di ambiente ad un processo figlio, vedi le exec() di Runtime che ricevono un String[] envp oppure vedi environment() di ProcessBuilder.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    76
    grazie ancora...mi sapresti indicare un link a uno script c++ che fa un settaggio di variabile d'ambiente cosi che magari lo possa richiamare da java?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da alf83
    grazie ancora...mi sapresti indicare un link a uno script c++ che fa un settaggio di variabile d'ambiente cosi che magari lo possa richiamare da java?
    No .. aspetta, chiariamo bene. Puoi fare benissimo un programmino C o C++ che imposta una variabile d'ambiente del suo proprio processo. Ma questa modifica sarà visibile solo agli eventuali processi figli.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.