Boa noite a todos. Primeiramente apesar do assunto ser Hibernate, entendo que essa minha duvida é de java básico, portanto, acredito que a sessao ideal é aqui mesmo.
Bom galera, já vasculhei todo o forum mas não encontrei uma solucão para o meu problema. Tenho um projeto java desktop bem simples que fará uma inserção a um banco com JPA/Hibernate, porém, usando o eclipse ele funciona certinho, gera tabela, insere no banco e tal agora quando gera o arquivo .jar ele não funciona. Ciclo no icone gerado, no caso, olaMundo.jar ele nao carrega ... vasculhando na net vi que podia ser executado pelo cmd para verificar qual seria o erro, e o erro é aquele velho Exception in thread "main" java.lang.NOClassDefFoundError: javax/persistence/Persistence
Ai voces vão dizer que o problema é que não está encontrando ou faltando algum jar do hibernate, certo, mas fiz essa mesma aplicação num servlet e rodei no tomcat e funcionou que é uma beleza e outra, ele roda no eclipse pela classe main também, por que não está rodando nesse jar sendo que tem a pasta lib apontando para a classpath ?
Obs.: Já fiz um teste em um jar sem o hibernate, apenas com um um joptionPane ola mundo e funciona também.
[img]http://img850.imageshack.us/img850/2940/73843258.jpg[/img]
[img]http://img687.imageshack.us/img687/8525/65748537.jpg[/img]
package modelo;
import java.math.BigDecimal;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.swing.JOptionPane;
public class MainTeste {
public static void main (String args[]) throws ClassNotFoundException{
Produto p = new Produto();
p.setCategoria("Frutas");
p.setNome("Manga");
p.setPreco(new BigDecimal(3.45));
p.setQuantidade(500);
EntityManagerFactory emf = Persistence.createEntityManagerFactory("Hibernatea");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
em.persist(p);
em.getTransaction().commit();
em.close();
emf.close();
JOptionPane.showMessageDialog(null,"Ola mundo");
}
}
package modelo;
import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="Produto")
public class Produto implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(unique=true, nullable=false)
private int codigo;
@Column(length=45)
private String categoria;
@Column(length=45)
private String nome;
@Column(precision=10, scale=2)
private BigDecimal preco;
private int quantidade;
public int getCodigo() {
return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCategoria() {
return categoria;
}
public void setCategoria(String categoria) {
this.categoria = categoria;
}
public BigDecimal getPreco() {
return preco;
}
public void setPreco(BigDecimal preco) {
this.preco = preco;
}
public int getQuantidade() {
return quantidade;
}
public void setQuantidade(int quantidade) {
this.quantidade = quantidade;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="Hibernatea">
<class>modelo.Produto</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.hbm2ddl.auto" value="create"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/estoque" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="1234" />
</properties>
</persistence-unit>
</persistence>