Preciso distribuir minha primeira aplicação em Java :shock: … em um arquivo JAR mas estou tendo problemas.
Tenho a seguinte árvore: brcomempresaappminhaApp e dentro do diretório minhaApp tenho todos os arquivos .class.
Criei o minhaApp.jar com o comando: jar cmf brminhaApp.manifest minhaApp.jar br/com/empresa/appminha/App*.class sem problemas. (verifiquei com conteúdo e está tudo lá. com o path completo)
No caso todas as classes desse diretório pertencem ao package br.com.empresa.app.minhaApp
O manifesto esta assim: Manifest-Version: 1.0
Class-Path: arapi51.jar arutil51.jar
Main-Class: minhaAppGUI
mas ao tentar executar com java -jar app.jar ou mesmo com jre -cp minhaApp.jar br/com/empresa/app/minhaApp/minhaAppGUI
recebo a mensagem Class Not Found …
Já substitui tanto no manifesto quanto na linha de comando do jre as barras “/” por ponto “.” e tentei apenas o nome da classe … como devo fazer?
Obrigado
Ah, esse é o primeiro problema, depois que ele achar a classe e o main ai deve aparecer outros
A mensagem de cima continua, mas eu consigo executar meu programa se explicitar o classpath e não usar o java -jar … depois tento melhorar, mas agora consigo executar com a seguinte linha: “C:Arquivos de programasJavaj2re1.4.1injava” -cp .;c:winntsystem32arapi51.jar;c:winntsystem32arutil51.jar;FaturamentoBanrisul.jar;NetsetUtil.jar; br.com.netset.app.FaturamentoBanrisul.BanrisulGUI
(o motivo do caminho completo do executável java é porque quero testar o J2RE e não o JDK que uso pra desenvolver na minha maquina, o path esta para o JDK).
ele executa minha aplicação mas dá o seguinte erro: Exception in thread “main” java.lang.NoClassDefFoundError: org/netbeans/lib/awtextra/AbsoluteLayout at br.com.netset.app.FaturamentoBanrisul.BanrisulGUI.initComponents(Banr
isulGUI.java:107) at br.com.netset.app.FaturamentoBanrisul.BanrisulGUI.<init>(BanrisulGUI.
java:32) at br.com.netset.app.FaturamentoBanrisul.BanrisulGUI.main BanrisulGUI.java:640)
Como deve ficar meu classpath pra eu ADICIONAR meus JAR & Cia sem sobrescrever o default do Java (pra ele usar toda a api).
É só você ir separando as coisas por ; (no caso do Windows).
Os do próprio Java normalmente você não precisa explicitar no classpath, mas o . para representar o diretório corrente sim.
Então ficaria tipo
classpath=.;C:\dir\arquivo.jar