Jump to content
Sign in to follow this  
joaoctm123

Jcraft .jar

Recommended Posts

joaoctm123

Boa Noite,

Estou a fazer um projecto para a Universidade, e foi dado um servidor MySQL, com uma conexão SSH ao servidor. Em Java já consegui efectuar a conexão. Estou a usar o NetBeans e para usar certos package (ex: import com.jcraft.jsch.JSch;) tenho que adicionar um ficheiro .jar ao projecto, nas libraries. Já adicionei o MySQL connector e o JCraft. A questão é que apenas consigo utilizar a classe criada no NetBeans, mas se for a correr na consola do Windows dá erro. Há uns tempos atrás verifiquei que para se utilizar o Connector/J, ou tinha que escrever na linha de comandos do Windows a directoria do ficheiro ou colocar o ficheiro .jar na pasta C:\Program Files\Java\jre7\lib\ext. Experimentei colocar também o JCraft também na mesma pasta mas não deu continuou a dar erros. Haverá maneira de correr a classe sem ser no NetBeans. Outra questão, ao utilizar a conexão SSH ao servidor no futuro não vai dar problema em Android, porque também vou criar em Android.

JCraft; http://www.jcraft.com/jsch/

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import java.sql.Connection;


public class MySqlConnOverSSH {

/**
 * Java Program to connect to remote database through SSH using port forwarding
 * @author Pankaj@JournalDev
 * @throws SQLException
 */
public static void main(String[] args) throws SQLException {

 int lport=5656;
 String rhost="";
 String host="";
 int rport=3306;
 String user="";
 String password="";
 String dbuserName = "";
 String dbpassword = "";
 String url = "jdbc:mysql://localhost:"+lport+"/db";
 String driverName="com.mysql.jdbc.Driver";
 Connection conn = null;
 Session session= null;
 try{
	 //Set StrictHostKeyChecking property to no to avoid UnknownHostKey issue
	 java.util.Properties config = new java.util.Properties();
	 config.put("StrictHostKeyChecking", "no");
	 JSch jsch = new JSch();
	 session=jsch.getSession(user, host, 22);
	 session.setPassword(password);
	 session.setConfig(config);
	 session.connect();
	 System.out.println("Connected");
	 int assinged_port=session.setPortForwardingL(lport, rhost, rport);
	 System.out.println("localhost:"+assinged_port+" -> "+rhost+":"+rport);
	 System.out.println("Port Forwarded");

	 //mysql database connectivity
	 Class.forName(driverName).newInstance();
	 conn = DriverManager.getConnection (url, dbuserName, dbpassword);
	 System.out.println ("Database connection established");
	 System.out.println("DONE");
 }catch(Exception e){
	 e.printStackTrace();
 }finally{
	 if(conn != null && !conn.isClosed()){
		 System.out.println("Closing Database Connection");
		 conn.close();
	 }
	 if(session !=null && session.isConnected()){
		 System.out.println("Closing SSH Connection");
		 session.disconnect();
	 }
 }
}

}

PS: Este código é o que estou a utilizar e está a funcionar.

Cumps

Obrigado :)

Edited by Baderous
geshi

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.