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.