Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Ottenere nome utente
Forum - Java - Ottenere nome utente

Avatar
posta10100 (Normal User)
Rookie


Messaggi: 27
Iscritto: 23/10/2006

Segnala al moderatore
Postato alle 16:10
Lunedì, 23/10/2006
Ciao a tutti.
Sto cercando di leggere le informazioni di login dell'utente corrente.
Mi spiego meglio:
ho bisogno di visualizzare nome e cognome dell'utente che sta utilizzando l'applicazione (in locale sul proprio computer).
Ho provato con System.getProperty("user.name") ma l'informazione non mi basta... o meglio su winzozz basterebbe anche (gli utenti si loggano con nome e cognome) ma su sistemi unix quello che leggo non è il nome reale dell'utente...

Questa informazione riesco ad ottenerla con il comando unix "finger" ma non ho molta voglia di lanciare finger, leggere l'output , estrarre il nome da tutte le info e visualizzarlo!!!

Qualcuno ha qualche idea?

Grazie 1000!!!!!

PM Quote
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 21:08
Lunedì, 23/10/2006
ciao,

che ne dici di lanciare quasto comando?

Codice sorgente - presumibilmente Plain Text

  1. basename `cd ~ && pwd`



ah c'è il rischio che l'utente abbia impostato una home diversa, cmq è raro.

edit:
ops scusa ho capito male, tu vuoi il nome completo, allora dovresti uhm... bhè si può provare a giocare con la bash così ti è più facile in Java, ci penso un attimo e ti risp.

prova un:

Codice sorgente - presumibilmente Plain Text

  1. finger netarrow | head -1



a me ad esempio ritorna:

Login: netarrow                            Name: Matteo

poi in Java è facile tirare fuori "Matteo"

per fare tutto in un tiro:

Codice sorgente - presumibilmente Plain Text

  1. basename `cd ~ && pwd` | finger -l | head -1



se mi viene come eliminare tutto e fare rimanere solo il nome posterò

Ultima modifica effettuata da netarrow il 23/10/2006 alle 21:28
PM Quote
Avatar
posta10100 (Normal User)
Rookie


Messaggi: 27
Iscritto: 23/10/2006

Segnala al moderatore
Postato alle 11:43
Martedì, 24/10/2006
A dire la verità avrei preferito fare tutto in java... cmq il tuo suggerimento ha un piccolo problema...

Se sulla macchina sono loggati più utenti, il comando mi mostra solo il primo che trova....

Ora faccio qualche tentativo, se nel frattempo avete qualche suggerimento...

Grazie!!!!

PM Quote
Avatar
posta10100 (Normal User)
Rookie


Messaggi: 27
Iscritto: 23/10/2006

Segnala al moderatore
Postato alle 12:00
Martedì, 24/10/2006
Ho trovato una soluzione... non sono ancora soddisfatto ma sembra funzionare...


Codice sorgente - presumibilmente Java

  1. try {
  2.    Runtime rt = Runtime.getRuntime();
  3.    String c = "finger -l " +                  System.getProperty("user.name");
  4.    System.err.println("....." + c);
  5.    Process p = rt.exec(c);
  6.    BufferedReader r = new BufferedReader(new    InputStreamReader(p.getInputStream()));
  7.    String s = r.readLine();
  8. System.err.println(s.substring(s.lastIndexOf(":") + 1).trim());
  9. } catch (Exception e) {}



Funziona ma se qualcuno sa fare meglio...

PM Quote