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

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.

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…

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

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

Obrigado.

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.

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

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.

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.

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

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

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

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.

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.

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.

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.

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

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

1 curtida

Obrigado!