Código:
 //Obtener dirección absoluta del fichero de ejecución .class o .jar
	    private static String direcAbs() throws Exception{
	    	
	    	/*La dirección recuperada tiene la forma
	    	 *? equivale a / o \ segun el S.O.
	    	 *Desde un jar=> java:file:?<direccion absoluta jar>!<relativa del resource elegido dentro del jar>
	    	 *Desde class=>file:?<direccion absoluta resource> */
	    	
	    	String res = "nombreClaseDentroDelJar.class";
	    	String direcc = Principal.class.getResource(res).toString();
	    	//Separador de directorios del sistema
	    	String sep = File.separator;
	    	if (direcc.startsWith("jar:"))
	    		direcc = direcc.substring(4,direcc.length() - ("!" + File.separator + res).length());
	    	
	    	File fich = new File (new URL(direcc).toURI());
	    	
	    	//Recorres la estructura hasta que estés en el directorio que quieras
//Esta parte la modificas según tus necesidades
	    	do {
	        	fich = fich.getParentFile();
	    	}while (fich.toString().endsWith("bin"));
	   	
	    	return fich.toString()+ sep;
	    }
  Éste lo utilicé  para leer un txt que estaba en el mismo directorio del jar. 
Suerte