Não usem JavaFX!

Amigos,

Venho deixar, aqui, um pouco da minha experiência com JavaFX.

Em primeiro lugar, devo informar que sou novo na linguagem Java, em geral (apesar de já ter alguma experiência com programação).

Se você está começando na linguagem Java, aconselho a usar SWING, pois já é testado, aprovado e FUNCIONA.

Ocorrido: após 5 meses, desenvolvendo um aplicação em JavaFX, MODULAR, não consigo executá-la fora da IDE (netbeans). Simplesmente, não há maneira de fazer o arquivo JAR executar (nem mesmo pelo prompt do CMD, utilizando o caminho gerado pelo netbeans).

Mesmo seguindo passo a passo, a documentação da GLUON (pelo ANT, pelo MAVEN e pelo GRADLE) não se consegue gerar um arquivo que seja executável. Todos geram erros.

Pior: pesquisando em vários locais, percebi que já se chegou ao consenso de que nem a GLUON não consegue resolver esses bugs, pois são incompatibilidades com uns tais “módulos automáticos”.

Ao que parece, se eu utilizar o JAVA 8 e NÃO fizer um programa MODULAR, a coisa funciona. Mas acho contraditório, ficar preso a uma tecnologia mais antiga, para utilizar uma nova tecnologia que nem me traz tantos benefícios assim.

Em resumo, precisarei RECOMEÇAR a aplicação, utilizando o SWING, que é NATIVO da linguagem.

Precisei falar a esse respeito, pois, após vários meses estudando e utilizando o JavaFX, percebi que o custo/benefício é muito baixo, para o trabalho que ele dá ao desenvolvedor (a questão do deploy é só UMA DELAS. Existem outros problemas que não citei aqui).

Logicamente, devem ser problemas que desenvolvedores plenos e sêniors possam resolver, porém, como ainda falta muito para que eu seja um sênior, vou ficando com o swing, mesmo.

Perdão pelo desabafo.

Abraço a todos que me ajudaram com o JavaFX, ao longo desse tempo.

1 curtida

Não usem JavaFX!

Cara, não começa com isso, se você é iniciante você não pode dizer pra outras pessoas não usarem. Eu já usei o JavaFX, tive dificuldades por não entender como funciona, mas quando entendi não tive mais problemas.

Isso é porquê você nao entende como os programas modulares funcionam, eu tenho um software rodando e comigo não há problemas de funcionamento.

O que você está tendo é dificuldade, dizer pra não usar é algo totalmente diferente. É a mesma coisa que dizer pra ninguém pilotar uma moto pq toda vez que vc sobe nela, vc acaba caindo em seguida

5 curtidas

Cara…

Pesquisei muito.

Os programas modulares são problemáticos.

Com certeza, você precisou utilizar ferramentas externas (e complicadas) pra fazer o bicho funcionar.

Ou…

Tá usando o java 8.

Se eu sigo os passos de uma documentação, publicada pelo DESENVOLVEDOR da linguagem, e a coisa não funciona, tem coisa MUITO errada.

Por curiosidade, qual versão do java tu usou? (obs.: Nunca usei javaFX, apenas fiquei curioso msm)

Segue o link do desenvolvedor:

https://openjfx.io/openjfx-docs/

Ele cita 3 maneiras de gerar a imagem para execução, para um projeto modular, no netbeans. Nenhuma das três funciona.

Para desenvolver a aplicação, usei o JavaFX 13 e o Java 13.

Para tentar fazer o deploy (que é o problema), tentei várias versões do Java (11, 13, 14…) e do JavaFX (13 e 14) nenhuma funcionou.

Usando o Netbeans 11.3.

Bom, o programador orochimaru já respondeu e muito bem a sua questão, a partir daqui creio que seja chover no molhado.

Mas, ainda chovendo…

A versão do NetBeans 11.3 e a 12.0 estão toda bugada.

Usa a 11.2 que provavelmente dê certo, bom no Linux tá funcionando tudo, tá gerando com o JLink, o jpackage do java 14 tá funcionando beleza.

E pra distribuir tá ainda com mais opções.

Quanto ao JavaFX > 8, sim tem muita coisa interna com muitas melhorias, inclusive de velocidade.

Se desejar usar o Swing ou outra biblioteca desejo sucesso e bons codigos.

1 curtida

Não sei se tem a ver, mas essas novas versões do java ainda não estão tão maduras com várias ferramentas, causando alguns problemas para uso. No meu trampo msm, não usamos as versões mais novas por conta de problemas com sonar, por exemplo.

Quase ninguem usa JavaFx no grande mercado, então nem precisa desse alarde todo. Se realmente precisa que a aplicação seja desktop em Java, vá de Swing mesmo que terá menos dor de cabeça. E se as versões novas do Java tiverem dando trabalho, vá de Java 8, que é a última versão mais usada pelas empresas.

Se está estudando para o mercado de trabalho, não dedique tempo com desktop, priorize web e mobile.