Ola pessoal, estou fazendo um aplicativo para teste que usa 2 jar externos, quando executo ele no eclipse ele funciona perfeitamente, mas quando executo ele no cmd apresenta um erro.
comando que utilizo para executar no cmd:
java -jar teste.jar 1 1 1
Erro que aparece:
Exception in thread "main" java.lang.NoClassDefFoundError: com/ddtek/jdbc/openedge/OpenEdgeDriver
at br.com.agenda.jdbc.ProgressConnectionFactory.getConnection<ProgressConnectionFactory.java:13>
Alguém tem uma ideia de onde estou errando?
Você precisa especificar também os jars na sua linha de comando. Um exemplo:
jar -cp arquivo1.jar;arquivo2.jar -jar SeuSistema.jar ....
onde arquivo1.jar e arquivo2.jar são os jars das bibliotecas que seu programa precisa usar.
bezier curve, Obrigado pelo retorno.
Executei o seguinte
java jar -cp openedge.jar; mysql-connector-java-5.1.18-bin.jar -jar teste.jar 1 1 1
Agora retornou o seguinte erro:
“Não foi possível localizar nem carregar a classe principal jar”
Quando altero a aplicação e não uso nenhum jar externo ena funciona normalmente, tanto no eclipse, quanto no cmd
Não tem espaço entre o “;”
Opa desculpe…
bezier curve, olha executei sem o espaço mas da o mesmo erro.
java jar -cp openedge.jar;mysql-connector-java-5.1.18-bin.jar -jar teste.jar 1 1 1
Retornou o seguinte resultado
“Erro: Não foi possível localizar nem carregar a classe principal jar”
Seu jar deve estar sem um arquivo MANIFEST.MF que contém uma informação chamada “Main-Class”.
Meu arquivo MANIFEST.MF está assim:
Manifest-Version: 1.0
Main-Class: br.com.agenda.main.executar
Será que tenho que alterar?
java jar -cp openedge.jar;mysql-connector-java-5.1.18-bin.jar -jar teste.jar 1 1 1
A linha de comando acima está como “java jar”… Não está sobrando essa palavrinha? Veja se não é algo como
java -cp openedge.jar;mysql-connector-java-5.1.18-bin.jar -jar teste.jar 1 1 1
Lição: preste mais atenção na hora de digitar as coisas.
entanglement, eu até ja tinha tentado executar dessa forma sem o jar depois do java, mas tb ta erro, é que eu não sei mesmo como é o comando.
Comando executado
java -cp openedge.jar;mysql-connector-java-5.1.18-bin.jar -jar teste.jar 1 1 1
Retorno
Exception in thread "main" java.lang.NoClassDefFoundError: com/ddtek/jdbc/opened
ge/OpenEdgeDriver
at br.com.agenda.jdbc.ProgressConnectionFactory.getConnection(ProgressCo
nnectionFactory.java:13)
at br.com.agenda.dao.ColaboradorDAO.<init>(ColaboradorDAO.java:20)
at br.com.agenda.main.executar.main(executar.java:19)
Caused by: java.lang.ClassNotFoundException: com.ddtek.jdbc.openedge.OpenEdgeDri
ver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 3 more
Será que pode ser a estrutura do projeto, tipo onde os jars externo estão.
a estrutura do projeto está da seguinte forma:
Projeto
>SRC
>Pacote com a classe main
>Lib
> jar externos que estou usando