Desenvolver Software com Java, MySQL p/ Linux

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.

1 curtida

Porquê?
Se usar a classe File adequadamente, ao invés de String, ela é independente de plataforma.

1 curtida

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?

1 curtida

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

1 curtida

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.

3 curtidas

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.

1 curtida

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.

1 curtida

Dependendo do sistema, talvez seja interessante fazer web msm (ainda mais se for em java).

1 curtida

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 …