Bonjour,

Tout d'abord, je sais que le forum est rempli de thread sur le sujet dont je vais vous parler, mais je pense que s'il y a autant de sujets crées c'est en partie parce que ces erreurs de chemins d'accès sont quasi typiques à chaque systèmes.

Voilà pourquoi j'ouvre un thread qui concerne presque uniquement mon cas :S. Désolé.

Cependant, j'ai une appli java, client/serveur. Qui tourne bien sous Jcreator, mais faudrait qu'elle passe aussi en lignes de commande. Du coup, quand je l'exécute en ligne de commande, logique, sinon c'est pas drôle, ça plante. Jer vais vous expliquer ça en détail juste après.

Tout d'abord, il faut savoir que j'ai créé un package pour mon application. Pour l'exécuter en DOS je tape:
java DatabaseListing/Client2
Les commandes "java" et "javac" sont bien reconnues par le système. J'utilise les drivers de connexion Oracle "ojdbc14.jar"

Voici l'erreur que j'obtiens:
Error: java.net.SocketException: Software caused connection abort: recv failed
Alors que dans Jcreator cette appli ne me donne pas cette erreur, elle fonctionne même bien.

Voici le code qui génère cette erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
package DatabaseListing; 
import java.io.*;
import java.net.*;
import java.util.*;
 
public class Client2 
{
	public static void main(String[] args) 
	{
		try 
		{
			BufferedReader entreeClavier = new BufferedReader(new InputStreamReader(System.in));
			Socket connexion = new Socket("127.0.0.1", 9000);
			PrintWriter sortie = new PrintWriter(connexion.getOutputStream(), true);
			BufferedReader entreeDepuisServeur = new BufferedReader(new InputStreamReader(connexion.getInputStream()));
			String envoi=" ";
			boolean continu = true;
			envoi = entreeClavier.readLine();
			String reponseDuServeur;
			System.out.println("Connexion Okay...");
			do 
			{
				sortie.println(envoi);
				reponseDuServeur = entreeDepuisServeur.readLine();
				System.out.println(reponseDuServeur);
			}
			while(reponseDuServeur.isEmpty()==false);
			connexion.close();
		}
		catch(IOException e) 
		{ 
			System.out.println("Erreur : "+e);
		}
		System.out.println("Connexion closed...");
	}
}
Et donc là-dedans il ne semble pas vouloir effectuer ce bout de code-ci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
do 
			{
				sortie.println(envoi);
				reponseDuServeur = entreeDepuisServeur.readLine();
				System.out.println(reponseDuServeur);
			}
			while(reponseDuServeur.isEmpty()==false);
Car dans l'invite de commande il m'affiche bien:
Connexion Okay...
Voici les valeurs que j'ai pour les CLASSPATH et PATH
PATH: C:\Program Files\Java\jdk1.6.0_03\bin;D:\Data\Java\Socket Version\DatabaseListing
CLASSPATH: .;C:\Program Files\QuickTime\QTSystem\QTJava.zip;D:\Setups\Oracle_JDBC_Driver;C:\Program Files\Java\jdk1.6.0_03\bin;D:\Data\Java\Socket Version\DatabaseListing

Bon, voilà.

Quelqu'un sait pourquoi il me génère cette erreur uniquement en DOS et pas avec un IDE ?

D'avance merci.
Ouranos21


EDIT: Le soucis viens du chargement des drivers de connexion JDBC qui passent vraiment pas en DOS. Du coup c'est pour ça qu'avec l'IDE ça marche...

Cependant je suis toujours pas sauvé, parce que ça fait bien 2h que je cherche LA commande qui me permettra de spécifier de lancer l'application avec ces foutus drivers de connexion Oracle...