Resolvido - Dúvida - 8.7 exercícios: importando um jar

16 respostas
R

Olá Pessoal! Estou tentando resolver o Exercício 8.7 da Apostila de java Caelum, mas estou com problemas no uso da biblioteca importada. Fiz o processo abaixo e deu certo.
8.7 EXERCÍCIOS: IMPORTANDO UM JAR
.
Selecione a opção Java Build Path
Selecione a aba Libraries
Clique no botão Add External Jars…
Selecione o arquivo fj11-lib-contas.jar localizado na pasta dos arquivos dos cursos/11
Clique no botão Ok para fechar a janela de importação

Mas quanto tento chamar a biblioteca importada, ele diz que não pode resolver o import feito.

Este é o código:

package br.com.caelum.contas.main;

import br.com.caelum.javafx.api.main.OlaMundo;

public class TesteJar {

public static void main(String[] args) {

// TODO Auto-generated method stub

OlaMundo.main(args);

}

}

Tentei até importar a biblioteca javaFX, que um colega sugeriu, mas mesmo assim não deu certo.
No exercício, diz que a classe OlaMundo está no JAR importado.
Alguém pode me ajudar, estou iniciando agora com Java.
Obrigado.

16 Respostas

D

Ola, estou com mesmo problema, só que já conseguir corrigir alguns erros, mas mesmo assim não roda, já olhei tutoriais em sites, fiz um teste aparte peguei um programa e exportei para um jar, e depois adicionei ele da mesma maneira que fj11-lib-contas, e o teste deu certo, mas o fj11-lib não. quando eu aperto o run da um erro : Error: Could not find or load main class pagina130.TestaJar
Caused by: java.lang.ClassNotFoundException: pagina130.TestaJar .

(pagina130 é nome da minha package mas ja coloquei o nome indicado pelo livro e nada acontece).

espero que tenha alguém com alguma solução…

D

Ola, Repct2, então na busca por resolver consegui. bom o que fiz foi reorganizar todos os pacotes de todos os exercícios como manda o livro, depois tive de pegar adicionar todo os JARs do MAVEN no projeto do exercício, feito isto consegui.

deu certo no Testajar
depois todos apareceram a seguinte mensagem: no operations to display at this time.
ocorreu um bug

R

Desculpe a ignorância, mas é que estou começando! O que é MAVEN?

Obrigado.

D

por enquanto só esta dando certo o primeiro exemplo não vale apena fazer para um exemplo só, né. então ainda estou procurando como resolver este problema, parece que na data que foram feito aqueles exercícios a linguagem era antiga e diferente da linguagem modelo do java SE de hoje, esta havendo incompatibilidade entre os arquivos de ensino do livro com o as modificações do java novo.

SkyG0D

Eu fiz tudo do livro sem nenhum problema usando o java 8, qual versão vocês estão utilizando?

D

Então, eu sou novato e estou aprendendo pelo livro também, mas parece que ha muitas pessoas com este problema. Eu estou usando java SE 14, acho que o problema esta na versão da liguagem com a compatibilidade com o material do exercícios. Se vocec puder disponibilizar o download do java8 e esclarecer essas diferenças do java SE 14. Agradeço.

R

Será que há como você disponibilizar compartilhar, se o Eclipse permitir isto, o seu projeto para que eu tente abrir aqui e tente identificar o erro que está apresentando no meu? Obrigado.

staroski

https://maven.apache.org/what-is-maven.html

https://www.oracle.com/br/java/technologies/javase/javase-jdk8-downloads.html

SkyG0D

Eu não fiz no Eclipse, e já não me lembro onde está o projeto, desculpa.

D

ola, obrigado pelos links, bom fiz download do java 8, executei instalei, e depois fui no eclipse window>preferences>instaled JREs(adicionei o jdk 1.8 instalado)> execution environment(coloquei o java se1.8 para o jdk1.8)>>apliquei e fechei. Bom deu certo no primeiro exercicio mas o restante dos exercicio com interface gráfica aparece a seguinte mensagem:

Exception in Application start method

Exception in thread main java.lang.RuntimeException: Exception in Application start method

at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)

at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$1(LauncherImpl.java:182)

at java.lang.Thread.run(Thread.java:748)

Caused by: javafx.fxml.LoadException:

file:/C:/Users/ADMIN/Downloads/fj11-lib-contas%20(1).jar!/Base.fxml
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2571)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at br.com.caelum.javafx.api.main.TelaDeContas.start(TelaDeContas.java:17)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$8(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$7(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$4(WinApplication.java:186)
... 1 more
Caused by: java.lang.reflect.InvocationTargetException

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)

at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)

at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2566)

 17 more

Caused by: java.lang.NoClassDefFoundError: br/com/caelum/contas/ManipuladorDeContas (wrong name: br/com/caelum/contas/ManipuladordeContas)

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:756)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)

at java.net.URLClassLoader.access$100(URLClassLoader.java:74)

at java.net.URLClassLoader$1.run(URLClassLoader.java:369)

at java.net.URLClassLoader$1.run(URLClassLoader.java:363)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:362)

at java.lang.ClassLoader.loadClass(ClassLoader.java:418)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)

at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:264)

at br.com.caelum.javafx.api.controllers.Controller.criaManipulador(Controller.java:37)

at br.com.caelum.javafx.api.controllers.Controller.initialize(Controller.java:25)

 27 more
e quando eu executo com o java 14 acontece que nem o primeiro da certo e aparece uma mensagem diferente :

Caused by: java.lang.ClassNotFoundException: javafx.application.Application

at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)

at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)

 10 more

bom obrigado staroski pelo ajuda, espero que meu problema e o do Reptc2 sejam resolvidos.

Acho que precisamos do java fx 2 por conta que na apostila no capítulo de instalação ele instala o java 8 e javafx 2 juntos. Se alguém tiver disponível o download do java fx2.

SkyG0D

Qual código ta dando esse erro?

Não sei se precisa instalar o javaFX, porquê eu não usei ele quando estava fazendo o curso.

D

Então exercício é o do capitulo 8. E se der uma olhada no livro no apêndice de instalação java, ele diz que instalando o jdk o javafx vinha junto. Acontece que instalei o jdk e não sei se o javafx2 veio. E também não sei onde esta o problema se é versão java, javafx.

R

Olá pessoal!
O problema é que ele não encontra o método OláMundo na biblioteca, segundo o exercício ele estaria no arquivo fj11-lib-contas.jar, mas se eu tento usar o import neste arquivo ele dá erro, se importo a biblioteca javaFX completa, ele aceita, mas dentro dela não está o método OláMundo.

Ele sugere utilizar o CTRL+SHIFT+O para importar a classe OláMundo, mas não funciona.

staroski

De onde você obteve esse arquivo fj11-lib-contas.jar?
Já verificou o conteúdo dele?
Tem como postar o link para download?

R

Olá Pessoal! O problema estava no arquivo fj11-lib-contas.jar! Encontrei outro e instalei e funcionou! Obrigado pela ajuda.

Encontrei ele no link abaixo
https://github.com/fabiomsnet/fj11-contas/blob/master/lib/fj11-lib-contas.jar

R

Obrigado!

Criado 3 de agosto de 2020
Ultima resposta 12 de ago. de 2020
Respostas 16
Participantes 4