A partir de 2019 Oracle JRE apenas pago é isso ?

55 respostas
jdkjava
vpmaciel1981

A partir de 2019 Oracle JRE apenas pago é isso ?

Compilei o programa no eclipse com o jdk 11 e agora ele pede para rodar no jre 11.
No site da Oracle tem o download apenas do jdk 11.

Onde baixar um JRE 11 que não seja pago ?

55 Respostas

M

Em teoria a Oracle sempre foi dona da JDK e JRE que ela distribui, não eh atoa que software que utilizem a jdk dela devem cumprir certo acordo. Agora se vc quer realmente utilizar ferramentas Open-Source use a OpenJDK com ela vc não necessitará pagar direito algum. \o

javaflex

Na própria página de download do Oracle JDK está bem destacado sobre isso, com links sobre os termos da licença e a alternativa ao OpenJDK. Mas o Oracle JDK sempre será a opção mais segura para empresas. Ou como sempre no mundo Java, vai atrás de distribuições de terceiros, como o Amazon Corretto. O ideal mesmo seria não usar mais Java para novos projetos.

https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html

vpmaciel1981

Agora a Oracle ferrou com os desenvolvedores Java.
A saída vai ser PHP, Python, Object Pascal ?
Depois de anos aprendendo programar em Java ganhando maturidade com a linguagem a Oracle pisou na bola com os desenvolvedores.
Cara estava todo empolgado com um novo projeto em Java para desenvolver o módulo de folha de pagamento.
Agora não sei se compensa desenvolver o projeto em Java.
Sempre fui crítico a Microsoft por cobrar caro dos desenvolvedores a licença para desenvolver com suas ferramentas, o mesmo com a antiga Borland com o Delphi.
Agora a Oracle me apronta essa.

javaflex

.NET Core.

javaflex

.NET Core é totalmente free.

Oracle sempre cobrou dos seus principais produtos, até que demorou pra isso acontecer após comprar o Java.

vpmaciel1981

.NET Core (Só espero que seja gratuito)

javaflex

Totalmente gratuito e open source.

vpmaciel1981

Aproveitando o gancho acho que é o fim do netbeans então. Tá na versão 8 desde o Java 8. Já está saindo o openjdk 12 na página do openjdk.

javaflex

Muito raro NetBeans ser usado profissionalmente. A própria Oracle jogou ele pra Apache, embora patrocine.

vpmaciel1981

Então se tá na mão da Apache partiu único projeto PHP que eu tinha no netbeans pra outra IDE. O Open Office foi pra mão da Apache e está bem atrás do Libre Office que foi lançado depois.

vpmaciel1981

Agora que falaram que o NetBeans passou pra Apache fui no Site da Apache e vi que tem a versão 9. O pior é que nem pra avisar no site principal ( https://netbeans.org/downloads/ ) do antigo netbeans que está na versão 8.2 que agora está sob licença Apache.

javaflex

Pra mim essas cópias mal feitas do Office nem existiam mais. Até Google Docs atende melhor.

vpmaciel1981

Só uso o libreoffice porque preciso pouco de usar programas de escritório, uso mais mesmo é pra trabalhos da faculdade, ele melhorou muito, mas tem muito a desejar. Só não uso o Ms Office por causa do preço se fosse uns 300 reais eu pagaria, mas ele tem muita coisa que eu nem preciso. O libre office, ou o google docs já me atende.

vpmaciel1981

Estou baixando o visual studio comunity 2017 tem suporte a várias linguagens, acho agora que a Oracle não vai pegar pesado quando as jdks e jres acabei achando versões antigas em outros sites. Se a Oracle pegar pesado com os desenvolvedores java vai atirar nos próprios pés. Ainda mais com alternativas novas que estão surgindo.

javaflex

Não é tiro no pé pra Oracle, vão lucrar com o mega legado Java. Muitas empresas não vão arriscar sair da garantia oficial da Oracle, para manter longo suporte a versão utilizada.

Já novas aplicações não vejo muito sentido usar Java, mesmo se Oracle JDK ainda fosse free, é muito improdutivo.

vpmaciel1981

Quando você falou do Dot net estou vendo parece ser parecido com o Java e ser bem mais produtivo, além de gratuito. Só estou ralando um pouco mais porque estou no linux. e estou com um problema aqui que não quer gerar a janela porque não encontra a referência para windows forms.

vpmaciel1981

Parece que Java cumpriu sua missão, e agora virão novas linguagens para resolver os problemas de hoje.

javaflex

WindowsForms é somente para Windows. E mesmo para Windows as tecnologias mais novas sao WPF e UWP.

Projeto desktop em pleno 2018? Voce falou em módulo de folha de pagamento, isso poderia perfeitamente rodar no navegador com back-end em ASP.NET Core, PHP, Ruby, etc.

Desktop pra Linux poderia usar alguma solucao que se integre a GTK ou Qt. Até onde sei, GTK com Python é mais usado, por mais que possa usar C#, Ruby e PHP. E Qt, C++.

vpmaciel1981

Observando aqui o Visual Studio, acabei concluindo por enquanto que se é para fazer aplicativos desktops em dotnet, seria melhor utilizar o IDE Lazarus e fazer em Object Pascal.

javaflex

Nao recomendo essas tecnologias obscuras, mas é uma opção. Se teu cliente usa desktop Windows, desktop com C# seria a opção mais natural. E para Linux, GTK+ ou Qt.

rmendes08

Tem uns 10 anos que eu escuto essa conversa …

D

O que tudo indica os termos de suporte do Java serão alterados possibilitando a cobrança pelo suporte. O resto que o Java será pago, isso é mentira que está se espalhando por aí. Estou compartilhando um link em que Mark Reinhold (Arquiteto chefe da plataforma Java na Oracle) fala exatamente sobre isso.

javaflex

E uma empresa séria vai correr o risco de ficar sem suporte a longo prazo da versão implantada? Por isso estão surgindo outras distribuições, como o Amazon Corretto.

FearX

Fim de papo.

rmendes08

É só não usar as JDK’s da Oracle. A RedHat já trabalha no suporte da OpenJDK, a Amazon está trabalhando na sua própria versão, e por aí vai … Particularmente, eu não sei o porquê desse escândalo … O PHP é suportado unicamente pela comunidade, sem nenhuma gigante por trás, e tá aí, firme e forte … o mesmo vale para Python e Ruby … então, sinceramente, não sei porque o pessoal fica escandalizado com isso … na prática, a Oracle só está voltando às suas origens, já que o antigo JDK da Oracle sempre foi pago

FearX

Porque a maioria dos usuários da tecnologia tem mente de usuário. Um blogger aleatório posta “O JAVA VAI SER PAGO OLHA O QUE A ORACLE FALOU!”, e a galera sai compartilhando sem checar fonte e sem entender os pormenores da notícia.

Tivemos até um presidente eleito dessa forma, acredita?

javaflex

São opções alternativas como já mencionei inicialmente sobre OpenJdk e o Amazon Corretto. Cada um assume seus riscos.

j-menezes

Qualquer Java de terceiro seja Open ou não, tem que passar por uma serie de verificações para ser considerado Java.

Por isso Java é tão bom, saber que criarão um Java que tenha recursos não oficiais da linguagem plataforma seria terrível.

O que dará a diferença é a implementação de determinado recurso.

Mas Oracle e OpenJDK tendem a andar juntos em termos de implementações, ao menos é isso que dizem.

P

E será que tem como migrar uma aplicação da JDK11 da ORACLE para uma “JDK” do OpenJDK de boa?

rodriguesabner

É só baixar o jdk da open, n tem segredo

P

Deu certo aqui. Brigadão!
Só que após a desinstalação do jdk11 fiquei com 2 problemas, não sei se saberão me ajudar:
1 - os arquivos exportados “.jar” não estão mais sendo reconhecidos pelo sistema.
2 - eu tava usando o Launch4j para gerar um “exe” dos “jar” para depois usar o Inno para fazer um instalador e agora o Launch4j não está funcionando devido a falta dos pacotes da Oracle.

P

Para esse ponto eu achei uma solução meio gambiarra que seria deixar o jdk8 na minha máquina, aí o Launch4j funcionaria de boa.

j-menezes

O Java 14 ou superior traz o jpackage para gerar nativo.

P

E o 14 por acaso já tá LTS?
Vou dar uma pesquisada sobre.

Mas o que tá agarrando é a questão dos arquivos .jar não estarem mais abrindo na minha máquina.

j-menezes

Não.
Mas não vejo problema em usar o ultimo JDK que está no 15.

Se o projeto é modular a ideia é diferente, ou ainda se for usar o Java >= 9 e for abrir um projeto com Java não modular, precisa adicionar os modulos necessarios na chamada.

A

O 14 não vai virar LTS.

O LTS atual é o 11 e o próximo será o 17.

P

Bom saber que o próximo é o 17. Eu uso atualmente o 11 mesmo.

Concordo plenamente com o seu ponto de vista, mas a questão é que estou desenvolvendo uma solução para ser usada em uma instituição um tanto quanto conservadora e usar o termo LTS para defender o projeto é algo que dá uma certa ênfase no desenvolvimento. Aquele famoso “storytteling”.

Mezzosd

Isso significa q terei q passar para python

javaflex

Muito mais produtivo e mais leve que Java.

Mezzosd

chorei então curto java então se embora pro python… vlww dude

vpmaciel1981

Quando saí da faculdade era fã de Java e C/C++. Depois no mercado vi que nós profissionais ganhamos para resolver problema, Java, Python, PHP são as ferramentas. Você escolhe a ferramenta de acordo com os critérios que decidiu ser a melhor ferramenta utilizada pra resolver o problema. Seu cliente vai querer ter o problema resolvido. Hoje utilizamos mais de uma ferramenta durante a vida profissional e até mesmo dentro de um projeto.

vpmaciel1981

Se for trabalhar com ciência de dados por exemplo com Java certamente ficara vendido, agora se utilizar Python terá uma opção que já tem vários componentes e recursos prontos. Estatística tem várias componentes em R já criados.

javaflex

Java hoje só serve mais pra criar api rest. Mas no Python voce também pode fazer bem isso com Flask, e ainda poder escrever numa linguagem mais limpa.

rodriguesabner

Pode criar em NodeJs também, muito mais simples

javaflex

Qualquer linguagem que não precise usar método pra comparar datas, decimais com precisão, etc ja nao é tao aterrorizante quanto Java.

S

Nossa!!
Sou iniciantes em Java, levei 6 meses para desenvolver um sistema Desk como aprendizado na versão jdk 1.8.0_111 no Netbeans.Para nada!
Não consigo rodar o arquivo jar em outra maquina
Na máquina do código roda mais quando instalo em outra máquina não abre a tela principal somente a de Login!
6 meses perdido!
Se alguém tiver um truque to por aqui?

S

Pura verdade

vpmaciel1981

Java tem suas características, depende muito no que você vai aplicar. O Spring salvou o Java pois o JSF é horrível juntamente com o PrimeFaces e RichFaces.

vpmaciel1981

O docker também hoje salvou tudo o que é linguagem, basta você dominar e ser produtivo, linguagem é só a ferramenta.

davidbuzatto

Vc tentou rodar o .jar pela linha de comando para ver as exceções que estão sendo lançadas? Do Java 8 para o 9 mudaram algumas coisas de “lugar” e moveram algumas APIs para o JEE, mas são coisas específicas que sabendo o que está acontecendo (exceções) vc pode adicionar as dependências “por fora”, continuando a compilar e a rodar no Java 8. Outra coisa, se o problema é só a execução mesmo, pq não mantém o Java 8 instalado na máquina cliente? Vc está desesperado à toa.

S
Boa noite David

Bom, como já disse sou iniciantes; não sei se o banco tem que está instalado na máquina do cliente?.Não sei se  isso tem haver?

Eu criei um arquivo run.bat abre somente a tela de login ,quando digito usuario e  senha abre uma tela escura com esses códigos.C:\Windows\System32>Java -jar ProjetoEquipeTalentos.jar

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException: Cannot invoke java.sql.Connection.createStatement(int, int) because this.con is null

at modeloConection.ConexaoBD.executaSql(ConexaoBD.java:37)

at visão.TelaLogin.jButtonAcessarActionPerformed(TelaLogin.java:110)

at visão.TelaLogin.access$000(TelaLogin.java:18)

at visão.TelaLogin$1.actionPerformed(TelaLogin.java:52)

at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)

at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)

at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)

at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)

at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)

at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)

at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)

at java.desktop/java.awt.Component.processEvent(Component.java:6391)

at java.desktop/java.awt.Container.processEvent(Container.java:2266)

at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)

at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)

at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)

at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)

at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)

at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)

at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)

at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)

at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)

at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)

at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)

at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)

at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)

at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)

at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)

at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)

at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)

at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)

at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)

at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException: Cannot invoke java.sql.Connection.createStatement(int, int) because this.con is null

at modeloConection.ConexaoBD.executaSql(ConexaoBD.java:37)

at visão.TelaLogin.jButtonAcessarActionPerformed(TelaLogin.java:110)

at visão.TelaLogin.access$000(TelaLogin.java:18)

at visão.TelaLogin$1.actionPerformed(TelaLogin.java:52)

at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)

at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)

at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)

at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)

at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)

at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)

at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)

at java.desktop/java.awt.Component.processEvent(Component.java:6391)

at java.desktop/java.awt.Container.processEvent(Container.java:2266)

at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)

at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)

at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)

at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)

at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)

at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)

at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)

at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)

at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)

at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)

at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)

at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)

at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)

at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)

at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)

at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)

at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)

at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)

at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)

at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException: Cannot invoke java.sql.Connection.createStatement(int, int) because this.con is null

at modeloConection.ConexaoBD.executaSql(ConexaoBD.java:37)

at visão.TelaLogin.jButtonAcessarActionPerformed(TelaLogin.java:110)

at visão.TelaLogin.access$000(TelaLogin.java:18)

at visão.TelaLogin$1.actionPerformed(TelaLogin.java:52)

at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)

at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)

at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)

at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)

at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)

at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)

at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)

at java.desktop/java.awt.Component.processEvent(Component.java:6391)

at java.desktop/java.awt.Container.processEvent(Container.java:2266)

at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)

at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)

at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)

at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)

at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)

at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)

at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)

at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)

at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)

at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)

at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)

at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)

at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)

at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)

at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)

at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)

at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)

at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)

at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)

at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException: Cannot invoke java.sql.Connection.createStatement(int, int) because this.con is null

at modeloConection.ConexaoBD.executaSql(ConexaoBD.java:37)

at visão.TelaLogin.jButtonAcessarActionPerformed(TelaLogin.java:110)

at visão.TelaLogin.access$000(TelaLogin.java:18)

at visão.TelaLogin$1.actionPerformed(TelaLogin.java:52)

at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)

at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)

at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)

at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)

at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)

at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)

at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)

at java.desktop/java.awt.Component.processEvent(Component.java:6391)

at java.desktop/java.awt.Container.processEvent(Container.java:2266)

at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)

at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)

at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)

at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)

at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)

at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)

at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)

at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)

at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)

at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)

at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)

at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)

at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)

at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)

at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)

at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)

at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)

at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)

at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)

at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException: Cannot invoke java.sql.Connection.createStatement(int, int) because this.con is null

at modeloConection.ConexaoBD.executaSql(ConexaoBD.java:37)

at visão.TelaLogin.jButtonAcessarActionPerformed(TelaLogin.java:110)

at visão.TelaLogin.access$000(TelaLogin.java:18)

at visão.TelaLogin$1.actionPerformed(TelaLogin.java:52)

at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972)

at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313)

at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)

at java.desktop/javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262)

at java.desktop/javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:279)

at java.desktop/java.awt.Component.processMouseEvent(Component.java:6626)

at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3389)

at java.desktop/java.awt.Component.processEvent(Component.java:6391)

at java.desktop/java.awt.Container.processEvent(Container.java:2266)

at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5001)

at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)

at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)

at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)

at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575)

at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)

at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)

at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)

at java.desktop/java.awt.Component.dispatchEvent(Component.java:4833)

at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)

at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:722)

at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:716)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)

at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:746)

at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:744)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)

at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)

at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:743)

at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)

at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)

at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)

at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)

at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)

at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

C:\Windows\System32>

vpmaciel1981

Veja se você adicionou o driver do banco de dados no projeto e extraiu ele ao criar o jar executável, verifique usuário e senha do banco está correto, verifique se o banco de dados está instalado na máquina do cliente, e se o usuário da aplicação tem permissão no banco de dados do cliente, verifique as portas do banco de dados.

vpmaciel1981

tem que ter um banco de dados instalado na máquina do cliente, a não ser que você utilize um banco de dados embutido na aplicação como é o hsqldb.jar

S

O Driver do BD já está embutido no projeto,usuário e senha estou usando do projeto com permissão.
Preciso verificar o banco se está instalado na maquina do cliente

Pelas informações estão desencontradas em vários canais ,dizem que; bastava criar uma aplicação em java gerar o arquivo jar e pronto?! estava pronto para instalar numa segunda maquina ?
Não é verdade , tem que seguir alguns requisitos.
Vou dar uma conferidas no banco
Em breve darei retorno!
Obrigado pela ajuda!

davidbuzatto

Vamos lá. Quem está lançando a exceção é a tentativa de invocação do método createStatement na referência do tipo Connection que está nula (por isso a NullPointerException), na linha 37 da classe ConexaoBD. Tudo isso está descrito na traçagem da exceção (abaixo). Logo vc aprende a ler. Não sei como, com quem ou com qual material você está aprendendo Java, mas só de olhar algumas coisas na própria traçagem já existem algumas inconsistências. Pacotes não devem ter caracteres acentuados (visão), mesmo funcionando. Pacotes também devem ser nomeados somente com letras minúsculas (vc tem um chamado modeloConection). Funciona com acento e/ou letra maiúscula? Sim, funciona. Deve-se fazer dessa forma? Não. Mais sobre isso aqui: Code Conventions for the Java Programming Language: 9. Naming Conventions

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException: Cannot invoke java.sql.Connection.createStatement(int, int) because this.con is null
at modeloConection.ConexaoBD.executaSql(ConexaoBD.java:37)   <- aconteceu aqui (a exceção acima)
at visão.TelaLogin.jButtonAcessarActionPerformed(TelaLogin.java:110)  <- e foi sendo propagada daqui em diante
at visão.TelaLogin.access$000(TelaLogin.java:18)
at visão.TelaLogin$1.actionPerformed(TelaLogin.java:52)

Para sua conexão estar nula algumas coisas podem estar acontecendo:

  1. O Driver de conexão com o SGBD não foi encontrado. Pode ser pq o .jar do projeto não está encontrando o .jar do Driver. Atualmente as classes de drivers JDBC são carregadas automaticamente, não sendo mais necessário o idioma Class.forName(…). Como na máquina de desenvolvimento funciona, se for algo com o driver, provavelmente é o não encontro do .jar. Poste sua classe ConexaoBD pra eu ver, pro favor;
  2. O usuário e/ou a senha estão incorretos, mas você já disse que não pois o usuário existe, tem permissão no banco/esquema e que funciona na sua máquina;
  3. Sua URL de conexão está incorreta. O host precisa ser o da máquina em que o SGBD está instalado e o banco/esquema está criado, com o usuário, senha e as devidas permissões. Se for uma máquina só que vai rodar o sistema, instale o SGBD nela mesmo se for o caso. O ideal é ter uma máquina na rede com o SGBD rodando, para todas as máquinas que forem rodar o sistema compartilhem o mesmo banco (algo um pouco óbvio eu acredito).

Agora algumas dicas/sugestões.

  1. Procure material que presta. Para Java SE use o Java Como Programar. O resto, a maioria pelo menos, é bem fraco;
  2. Não se desespere ou fique chateado pq as coisas não funcionaram tão bem como te disseram que ia funcionar. Não existe bala de prata e toda e qualquer tecnologia tem seu caminho das pedras para ser trilhado. A linguagem Java, a plataforma como um todo e todo seu ecossistema é riquíssimo, mas difícil de dominar. Demora mesmo.

Pelas informações estão desencontradas em vários canais ,dizem que; bastava criar uma aplicação em java gerar o arquivo jar e pronto?! estava pronto para instalar numa segunda maquina ?
Não é verdade , tem que seguir alguns requisitos.

Aqui é o famoso depende. Qual ferramenta de desenvolvimento está usando? Se for o NetBeans, num projeto Ant padrão, após o build basta copiar a pasta dist do projeto que tudo estará ali. Se for usando o Maven, aí pode variar. Em outras IDEs esse processo pode ser mais burocrático (MUITO burocrático as vezes).

Vamos conversando que vc vai conseguir resolver, seu problema é BEM simples. Tem coisas absurdamente mais cabeludas espreitando por aí, pode acreditar :rofl:

Criado 10 de dezembro de 2018
Ultima resposta 25 de jan. de 2022
Respostas 55
Participantes 13