Ola pessoal, estive recentemente conversando com uns colegas sobre jobs freela e vimos a questão de desenvolver um sistema que seria usado em maquinas com Linux…
Alguém aqui ja fez isso e convenceu clientes na boa??
Pela pergunta, imagino que seja sistemas desktop. Com o java, vc desenvolve a aplicação e ela vai funcionar no linux, windows de boa. Qual a dificuldade que vc acha que teria para convencer algum cliente disso?
Acredito que o maior problema seja o esquema de pastas mesmo
Não tem o que convencer, atenda o ambiente de cada cliente de acordo com x ou y que ele usar, pra não trazer mais problemas do que soluções.
Dependendo do requisito faz uma aplicação web pra ninguém se preocupar com isso.
Porquê?
Se usar a classe File adequadamente, ao invés de String, ela é independente de plataforma.
Mas não é passado uma String dentro de File? Por exemplo new File("c:\\pasta");.
O correto é fazer um If e else pra detectar o sistema e adicionar a pasta correta, certo?
No caso, a interface Path não serve justamente pra abstrair este tipo de coisa?
final var path = Path.of("path", "to", "file");
final var file = path.toFile();
Geraria path/to/file no Linux e path\to\file no Windows.
Ou lidar com o sistema de arquivos requer mais coisas?
Hmmmm, maneiro.
Na verdade eu nem sabia como se faria com outro sistema operacional. Sempre o público que eu usava era Windows, como sempre tive um sistema voltado pra portaria de condomínio e os usuários eram básicos eu nunca me preocupei com outro. Mas valeu pela informação brother
A classe File possui sobrecarga de construtores.
A forma que você postou é dependente do formato de caminhos do Windows.
Mas para usar a classe File para acessar, por exemplo, o caminho C:\uma\pasta\dentro\de\outra, pode fazer o seguinte:
File f = new File("C:");
f = new File(f, "uma");
f = new File(f, "pasta");
f = new File(f, "dentro");
f = new File(f, "de");
f = new File(f, "outra");
Outra alternativa é usar sempre o caractere / para separar os diretórios, o File substitui o / pelo separador adequado.
Entretanto, desde que existe a classe Path, montar caminhos independentes de plataforma é mais simples, como o @wldomiciano mostrou.
Se teus clientes só usam Windows, não é problema mesmo, é mais produtivo. Quando é o caso de trabalhar com path fixo, costumo parametrizar em algum lugar, na maioria das vezes em uma tabela de parâmetros.
Valeu ai galera, pelo feedback…
A principio será um sistema desktop rodando em linux e a parte de do Mysql, pode ser que rode em algum provedor na nuvem, pra questão de backup e segurança…
Interessante esse ponto de pastas… agradeço a ajuda.
Dependendo do sistema, talvez seja interessante fazer web msm (ainda mais se for em java).
Com certeza, nao deixe de avaliar se poderia ser web, muito mais cômodo para o usuário e a sua administração. Além disso, acessar banco remotamente como está querendo, expõe o serviço do banco na internet e é mais lento do que a aplicação web acessando lá na mesma rede.
Desktop está morto para a maioria dos casos de novos sistemas de informações. Se for algo do tipo PDV ou que nao possa ser web, faz um módulo somente pra isso, e o resto web.
Ú !!! direto e reto.
Convencer pra usar algo melhor é sempre mais facil.
Sem se preocupar com virus, travamento, licença, esse linux + java casamento perfeito.
Verdade, esse ponto de segurança é bom… um colega mencionou que ele trabalha numa empresa de TI e la colocaram maquinas novas com Linux Ubuntu pra baratear… e foi bem melhor…
Tenho maquina rodando linux + java desktop e a mais de 15 anos nada de virus ou travamento.
A pouco tempo atras fui fazer a biometria pra votar e advinha o sistema do governo travou, estava com windows ( corra quem puder dessa encrenca )
Então falei pra atendente, e se voce dar um reset ?
Ela respondeu : O que !?, já dei uns 10 resets e trava toda hora.
Verdade… empresas usam Linux ha anos sem fazer manutenção… um colega trab. um tempo pro BB e la ele disse que tem maquina rodando Linux ha uns 4 anos sem da manutenção… e sobre o sistema… usarei MariaDB, Java e rodar no Linux …