Como pegar o nome da conta logada no windows?

Boa note pessoal,

Estou quebrando a cabeça com um problema, e agradeceria muito se alguem pudesse me ajudar.

É o seguinte:
Preciso pegar o nome da conta do usuário que está logado no computador.
Verifiquei alguns tópicos e tentei utilizar a seguinte instrução: System.getProperty(“user.name”);

Porém ele retorna meu login (usuario.sobrenome, por exemplo), enquanto o nome da minha conta é “Usuário Sobrenome”.

Preciso disso pois gostaria de colocar um diretório padrão no jFileChooser, e por conta disso não estou conseguindo.

Como faço pra pegar o NOME, ao invés do LOGIN?

Agradeço muito se puderem me ajudar.
Obrigado.

Dá um exemplo de onde aparece o nome no Windows. No meu Windows por exemplo não tem nome, só o login. Você deve estar se referindo ao nome que fica na conta da Microsoft na nuvem, que é opcional vincular ao Windows.

Mas é que o problema é que o diretório do jFileChooser mostra o seguinte (por exemplo):
C:\Users\Lucas Machado\Desktop

E quando eu pego o login o diretório fica assim:
C:\Users\lucas.machado\Desktop e dessa forma ele não encontra o diretório desejado (nesse caso, a área de trabalho).

Isso é o login, sendo que você colocou seu nome e sobrenome com espaço, ai dá confusão. Tente isso: System.getProperty("user.home") + "/Desktop"

Em ultimo caso substitui ponto por espaço, caso com ponto falhar.

É que tipo, o sistema está rodando em um servidor, e eu acesso ele remotamente.
Se eu utilizar o System.getProperty(“user.home”), ele irá me retornar esta pasta dentro do servidor.

O que estou tentando fazer é abrir o Desktop do computador do cliente, por isso estou tendo dificuldades.

Tipo: se eu usar o user.home, ele vai abrir a pasta home do cliente dentro da máquina do servidor.

Saberia como me ajudar para colocar o diretório do computador que está acessando o sistema?

Nao sei. Se é uma aplicação desktop, deveria rodar local.

Ele roda local, mas como está alocada no servidor ele está abrindo as pastas locais do servidor.

Precisaria do diretório que abrisse as pastas do computador que está acessando o servidor.

Local quis dizer na máquina do usuário, que é o normal em aplicação desktop. Se é desktop por que nao pode rodar na máquina do usuário?

Porque mais usuários acessam ela, de diferentes cidades :confused:

A solução que eu encontrei foi colocar em um servidor, e eles acessam o sistema remotamente…

Teria alguma outra recomendação pra usar de outra forma? Pois desse jeito quando o servidor está lento, prejudica um pouco o trabalho no sistema.

Sou novo nisso, então se souber de uma ideia melhor ou uma dica, estou aberto a novos conhecimentos ^^

O que está usando pra acessarem a aplicação no servidor?

Estou utilizando RDP.

Configurei o servidor para, através de um atalho, acessarem direto a aplicação… só precisa logar no servidor e o sistema é executado.

No RDP, vai em “mostrar opcoes”, depois aba “Recursos Locais”, botão “Mais…”. Lá tem como escolher as unidades de disco locais permitidas.

Nao servindo isso, uma saída é você usar Java Web Start.

Primeiramente, muito obrigado pela ajuda.

O meu problema é que tipo: aparece o disco C do cliente lá quando eu abro o jFileChooser, porém queria que quando ele abrisse, já caísse direto neste diretório, ou no desktop dele… Para não tem que ir selecionando pasta por pasta até chegar em um diretório do computador dele… entendeu?

Será que teria como fazer isso?
Vi que o diretório que abre é o seguinte: \tsclient\C\Users\lucas.machado\Desktop
Porém, eu não consigo utilizar este diretório porque o meu computador está nomeado como “Lucas Machado”, e não “lucas.machado”…
Por isso precisaria pegar isso dinamicamente, para que quando qualquer usuário acessar, possa encontrar o diretório.

Substitui espaco por ponto como tinha falado.

Obrigado pela sugestão. Vou verificar em alguns computadores se dá certo.

Retorno com o resultado! Hhahahaa

Obrigado pela ajuda :slight_smile: