O mesmo erro de antes, só que citando a biblioteca do postgres, ao invés da swt:
Error: automatic module cannot be used with jlink: org.postgresql.jdbc from file:///C:/Camelo/JAVA/postgresql-42.2.9.jar
Pelo jeito, se eu excluísse a biblioteca do postgres, esse erro citaria a próxima biblioteca da lista: javafx.base , e assim por diante.
Acho que o erro não estava na swt, mas sim nos packages ou no arquivo modules-info.
Criei um novo package TELAS2, joguei todos os fxml dentro dela, mas continua dizendo que o package não existe ou está vazio. Muito estranho.
Calma, estive testando o NetBeans 11.3 aqui e esta’ bugado.
Tente com o NetBeans 11.2, esse tô usando aqui sem erros.
Já o javafx.swt se voce nao esta usando SWT pode retirar de qualquer forma mesmo, em modularizacao nao tem porque colocar um modulo que nao vai usar.
No NetBeans 11.2 dá o mesmo erro.
Já excluí a SWT. Como não apareceu nenhum erro depois disso, eu não pretendia voltar a usar.
Tô te enviando um link do projeto zipado (não consegui enviar, por aqui):
Vê se dá o mesmo erro, aí.
Se conseguir fazer o procedimento do JLink por aí, me avisa.
Consegui resolver a questão do PACKAGE.
Como, no pacote, só existiam arquivos FXML, o netbeans estava considerando vazio.
Criei uma classe .java, vazia, dentro do package e tudo ficou certo.
Porém ainda não consigo criar o JLink, mesmo com todos os exports do module-info, estando em ordem.
Esse problema é que o driver do postgresql não esta modularizado.
O JLink exige o module.
Para resolver isso tem 2 formas
1.usar o jdeps ele vai gerar o module-info.java compila e depois jar update
2.Outra forma que Eu tenho feito com certa frequencia é ter o fonte
e criar o module-info.java e compilar
No momento não vai dar pra mim adaptar o drive do postgresql, mas assim que tiver um tempo dou uma olhada melhor nisso.
Modularização foi feita pensando em portar o Java em pequenos dispositivos, como celulares, raspberry pi entre outros em que voce não precisa de um tiro de elefante pra matar uma formiguinha.
Voce pode se desejar, fazer qualquer teste simples ai usando somente o JavaFX e ver como o JLink funciona, nesse meio tempo se pensa em resolver o driver do postgresql para o JLink.
Ok, cara.
Obrigado, mais uma vez.
Vou dar uma olhada nesse jdeps e nesse link, que você informou mais cedo (http://tutorials.jenkov.com/java/modules.html) - só vi, agora.
Sei que funcionaria sem as bibliotecas. Dei uma olhada na documentação do JavaFX e lá explica, em detalhes, como criar um projeto modular e como criar a imagem executável. Sei que fiz tudo certo, então era pra estar funcionando. O problema está nas bibliotecas, mesmo.
Depois, se você lembrar, dá uma olhada nessa questão do driver do postgres e me cita em alguma publicação, aqui, no fórum.
De toda forma, você já tirou um peso das minhas costas. Eu já pensava que todo o meu trabalho tinha sido em vão. Agora, já sei que tá tudo certo.
Valeu!
1 curtida
Depois de passar o dia pesquisando, finalmente achei a maneira de executar pelo prompt do DOS, deixando a janela do DOS oculta.
Vou postar, aqui, para futuras consultas do pessoal.
Ao invés de START ou CMD, a solução foi USAR OS DOIS: nesse caso, o START chamando o CMD. Cada um com seus argumentos:
start /min cmd /c java restante-da-chamada
Dessa forma, a janela do DOS fica minimizada e só o aplicativo Java aparece na tela.
Funcionou, que foi uma belezura.
Abraço.
1 curtida