Gerar um Jar com jar java + jar mysql no Netbeans (resolvido)

Pessoal gostaria de juntar um jar java + com o jar de conexão do mysql. A minha aplicação não roda em outra máquina se eu não levar o jar mysql conector, não precisa ser exe ou instalador, só juntar os 2 pra funcionar sem precisar levar 2 arquivos separados. Estou usando o Netbeans.

#assunto já discutido no fórum:

http://www.guj.com.br/java/244688-gerando-arquivo-jar-executavel-como-faco-#1266530
http://javamilk.blogspot.com/2010/10/configurando-seu-projeto-no-netbeans.html
http://java.sun.com/developer/technicalArticles/java_warehouse/single_jar/

não esqueça de usar a busca do fórum.

att,

Usei o artigo http://javamilk.blogspot.com/2010/10/configurando-seu-projeto-no-netbeans.html como base, peguei o jar gerado a partir do Build tentei colocar em outro pc mas travou. Vejam se podem me ajudar.

<project name="Windows" default="default" basedir=".">
    <description>Builds, tests, and runs the project Windows.</description>
    <import file="nbproject/build-impl.xml"/>

 <target name="package-for-store" depends="jar">

    <!-- Change the value of this property to be the name of your JAR,
        minus the .jar extension. It should not have spaces.
        <property name="store.jar.name" value="MyJarName"/>
     -->
    <property name="mysql" value="Windows"/>

    <!-- don't edit below this line -->
    <property name="store.dir" value="store"/>
    <property name="store.jar" value="${store.dir}/${store.jar.name}.jar"/>

    <echo message="Packaging ${application.title} into a single JAR at ${store.jar}"/>

    <delete dir="${store.dir}"/>
    <mkdir dir="${store.dir}"/>

    <jar destfile="${store.dir}/temp_final.jar" filesetmanifest="skip">
        <zipgroupfileset dir="dist" includes="*.jar"/>
        <zipgroupfileset dir="dist/lib" includes="*.jar"/>
        <zipgroupfileset dir="C:\Users\YPY\Downloads\mysql-connector-java-5.1.16" includes="*.jar"/>

        <manifest>
            <attribute name="Main-Class" value="${main.class}"/>
        </manifest>
    </jar>

    <zip destfile="${store.jar}">
        <zipfileset src="${store.dir}/temp_final.jar"
        excludes="META-INF/*.SF, META-INF/*.DSA, META-INF/*.RSA"/>
    </zip>

    <delete file="${store.dir}/temp_final.jar"/>

</target>
</project>

[quote=pedruhenrik]#assunto já discutido no fórum:

http://www.guj.com.br/java/244688-gerando-arquivo-jar-executavel-como-faco-#1266530
http://javamilk.blogspot.com/2010/10/configurando-seu-projeto-no-netbeans.html
http://java.sun.com/developer/technicalArticles/java_warehouse/single_jar/

não esqueça de usar a busca do fórum.

att,[/quote]

Antes de faze a pergunta eu ja tinha pesquisado no fórum e não achei a resposta. Dei uma olhada nos link’s que você passou e ainda nao consegui juntar o jar do java ao jar do mysql. O primeiro e ultimo link falam a respeto do netbeans 6, estou usando o 7 e o segundo link segui os passos, gera um novo jar mas esse jar não leva o jar do mysql.

http://javamilk.blogspot.com/2010/10/configurando-seu-projeto-no-netbeans.html

executei os mesmos passos desse link no netbeans 7 e tds as dependências foram incluidas.

estranho…vc descompactou o novo .jar gerado dentro da pasta “Store” ?

se vc chamar o jar da aplicação via console/terminal qual o erro?

att,

[quote=pedruhenrik]http://javamilk.blogspot.com/2010/10/configurando-seu-projeto-no-netbeans.html

executei os mesmos passos desse link no netbeans 7 e tds as dependências foram incluidas.

estranho…vc descompactou o novo .jar gerado dentro da pasta “Store” ?

se vc chamar o jar da aplicação via console/terminal qual o erro?

att,[/quote]

Nao, quando fiz os passos do artigo foi criado uma pasta store e um jar dentro, peguei esse jar e tentei executar em outra máquina que nao possui o jar mysql, mas fica como se fosse apenas o jar do java.

o jar do mysql esta configurado no classpath?

o jar da pasta store vc o executou chamando pelo console/terminal? aparece alguma exception?

já descompactou o jar da pasta store e viu os .jars q tem dentro dele ?

att,

Não, coloquei apenas nas bibliotecas da aplicação.

Estou usando o windows.

Descompactei agora e o jar do mysql não está entre eles.

e se vc adicionar o jar para sua aplicação e tb ao classpath, fizer um clean and build e gerar clicando com o botão direito sobre o build.xml? o q acontece?

no prompt do dos digita:

java -jar caminhoDoSeuJarGerado.jar

aparece alguma exception?

engraçado q eu segui os mesmos passos no post e deu certo.

att,

classpath ficou assim:

.;JAVA_HOME.;C:\Users\Y\Documents\NetBeansProjects\Windows\dist\lib

Pode me informar os passos pra fazer isso?

Deu a seguinte mensagem:

C:\Users\Y>java -jar C:\Users\Y\Documents\NetBeansProjects\Windows\store\${store.jar.name}
Unable to access jarfile C:\Users\Y\Documents\NetBeansProjects\Windows\store\${store.jar.name}

C:\Users\Y>java -jar C:\Users\Y\Documents\NetBeansProjects\Windows\store
Unable to access jarfile C:\Users\Y\Documents\NetBeansProjects\Windows\store

tem um botão, tipo um icone de martelo, do lado do icone da seta verde (run).

para chamar no prompt o meu código fica assim:

C:\Users\pedro>java -jar c:\Users\pedro\Documents\NetBeansProjects\Windows\store\teste.jar"

faltou vc passar o nome do jar.

att,

[quote=pedruhenrik]tem um botão, tipo um icone de martelo, do lado do icone da seta verde (run).

para chamar no prompt o meu código fica assim:

C:\Users\pedro>java -jar c:\Users\pedro\Documents\NetBeansProjects\Windows\store\teste.jar"

faltou vc passar o nome do jar.

att,[/quote]

Quando coloco o caminho pelo cmd a minha aplicação executa. Executei pelo build.xml e executa a plicação normalmente.

e se vc mudar apenas esse jar da pasta store de local?

tipo no c:\

executa ?

att,

[quote=pedruhenrik]e se vc mudar apenas esse jar da pasta store de local?

tipo no c:\

executa ?

att,[/quote]

Perfeitamente. Só não funciona quando eu pego e coloco em outro máquina que não tem o java conector do mysql, ai dá mensagem que não foi possível conectar ao banco de dados.

esse novo jar da pasta store esta com o jar do mysql dentro?

na sua classe de conexão com o banco por acaso vc esta conectando no endereço localhost? posta a classe de conexão tb.

vc já tentou criar um outro projeto q apareça apenas um JOptionPane e tentu executar nessa outra máquina?

att,

Não

Sim.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
               
        String driver = "com.mysql.jdbc.Driver"; //Classe do driver JDBC
        String banco = "ypy_trix"; //Nome do Banco criado
        String host = "192.168.1.109"; //Maquina onde está o banco
        String str_conn = "jdbc:mysql://" + host + ":3306/" + banco; //URL de conexão
        String usuario = "pedro"; //Usuário do banco
        String senha = ""; //Senha de conexão
        

Ainda não.

coloca tb o erro a aparece.

att,

[quote=pedruhenrik]coloca tb o erro a aparece.

att,[/quote]

Pois é, não aparece erro, so não retorna a consulta no banco quando executo em outra máquina.

Alguma ideia pessoal?

Não sei se tem algo a ver, descompactei o arquivo gerado depois de executar pelo buid e o index está assim"

JarIndex-Version: 1.0

mysql-connector-java-5.1.16-bin.jar
com
com/mysql
com/mysql/jdbc
com/mysql/jdbc/configs
com/mysql/jdbc/exceptions
com/mysql/jdbc/exceptions/jdbc4
com/mysql/jdbc/integration
com/mysql/jdbc/integration/c3p0
com/mysql/jdbc/integration/jboss
com/mysql/jdbc/interceptors
com/mysql/jdbc/jdbc2
com/mysql/jdbc/jdbc2/optional
com/mysql/jdbc/jmx
com/mysql/jdbc/log
com/mysql/jdbc/profiler
com/mysql/jdbc/util
org
org/gjt
org/gjt/mm
org/gjt/mm/mysql

E antes de executar pelo build se eu levasse o mysql conector que está na pasta lib para outra máquina o programa executava, agora não funciona.