Onde colocar a API externa no MANIFEST.MF?

Galera estou criando um jar de minha aplicação, essa aplicação usa uma API externa, o POI, ele é um jar… queria saber aonde no MANIFEST.MF eu incluo esse jar, tentei de vários formas mas ele não reconhece o jar externo que tá na pasta lib/poi-2.5.1-final-20040804.jar do meu projeto

meu MANIFEST.MF está assim

Manifest-Version: 1.0
Main-Class: controle.ControlePrincipal
Class-Path: ./lib/poi-2.5.1-final-20040804.jar

mas não funciona, dá a seguinte mensagem quando tento acessar alguma tela que use a API externa

C:>java -jar inventario.jar
Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError: org/apach
e/poi/hssf/usermodel/HSSFRow
at apresentacao.PainelRelatorio.<init>(PainelRelatorio.java:37)
at controle.ControlePrincipal.actionPerformed(ControlePrincipal.java:177
)

Supondo a seguinte estrutura de diretorios:

 - inventario(Dir)
       - inventario.jar
       - lib
            - poi-2.5.1-final-20040804.jar

o classpath do seu arquivo manifest.mf deveria ficar assim

Class-Path: lib/poi-2.5.1-final-20040804.jar [/quote]

Tentei assim também, mas nada cara… dá o mesmo erro
tá assim agora meu manifest.mf o jar está na lib
Manifest-Version: 1.0
Class-Path: lib/poi-2.5.1-final-20040804.jar
Main-Class: controle.ControlePrincipal

C:&gt;java -jar inventario.jar
Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError: org/apach
e/poi/hssf/usermodel/HSSFRow
at apresentacao.PainelRelatorio.<init>(PainelRelatorio.java:37)
at controle.ControlePrincipal.actionPerformed(ControlePrincipal.java:177
)

bota na mesma pasta e o jar da API e seu jar e bota o mainfest assim

Manifest-Version: 1.0
Main-Class: controle.ControlePrincipal
Class-Path: poi-2.5.1-final-20040804.jar

o seu inventario.jar esta na raiz certo ?

e o diretorio lib ?

o ideal seria vc criar um diretorio para sua app, como eu passei no meu post anterior…

Quando eu crio o jar, eu estou criando no Desktop

minha aplicação está aqui
C:\Documents and Settings\vhdoliveira\Desktop\Eclipse 3.0\workspace\inventario

o POI está em
inventario\lib

to criando o inventario.jar em
C:\Documents and Settings\vhdoliveira\Desktop

Tentei criar o inventario.jar na raiz da aplicação e o problema persistiu

entao vitorkgb,

estando seu jar em C:\Documents and Settings\vhdoliveira\Desktop,
teoricamente seu diretorio lib deveria estar em C:\Documents and Settings\vhdoliveira\Desktop\lib, para que o manisfet.mf com o classpath
lib/poi-2.5.1-final-20040804.jar funcionasse.

Apenas para teste, crie no seu desktop, um diretorio chamado inventario.
Coloque dentro deste diretorio seu inventario.jar e o diretorio lib com o jar do POI e tente rodar

eu fiz isso, criei um diretorio com uma pasta Lib e com meu .jar executavel, porem nao consigo conexao com banco de dados…

no classpath e assim?

Class-Path : lib/mysql-connector-java-3.1.13.jar;lib/org.jar;

e certo isso, separar as jars com ponto e virgula? essa pasta org e exatamente a que da erro…

Driver.java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
java.sql.SqlException : No suitable driver

SQLException: No suitable Driver
SQLState : 08001
VendorError: 0

não, o classpath do manifest.mf usa espaço como delimitador …

Class-Path : lib/mysql-connector-java-3.1.13.jar lib/org.jar

http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html

Agora foi, obrigado mesmo cara…

Não estava dando atenção ao local que o inventario.jar seria criado, estava me preocupando somente com o poi.jar, não sabia que influenciava o local do inventario.jar… agora tá blz…

entao, consertei isso, mas continua dando o erro… meu manifest e o seguinte:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_07-b03 (Sun Microsystems Inc.)
Main-Class: Sacaria.Main
Class-Path: lib/swing-layout-1.0.jar lib/mysql-connector-java-3.1.13.j
ar lib/org lib/com.jar lib/commons-collections-2.1.jar lib/commons-ja
vaflow-20060411.jar lib/commons-digester-1.7.jar lib/commons-logging-
1.0.2.jar lib/jasperreports-1.2.3.jar lib/xml-apis.jar
X-COMMENT: Main-Class will be added automatically by build

esta certo?

o engracado e que o NetBeans mesmo ja ta criando esse class-path no manifest.mf e nao esta funcionando assim mesmo…

rodando pelo netbeans funciona ?
o jar do driver esta sendo incluido no diretorio lib ?

sim, no NetBeans funciona normalmente, porem importo uma pasta chamada org que tenho…

mas o engracado e que se eu tirar essa pasta org que tenho no meu projeto e deixar so o conector mysql la dentro nao funciona, porque sera? sera que tenho que coloca em meu classpath o seguinte:

lib/org/org/gjt/mm/mysql.*

ou tenho que criar um jar com esse meu org?

Amigo, muito obrigado pela ajuda, consegui fazer funcionar!! o problema estava com o conector do mysql…muito obrigdo mesmo!!