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:
Les commandes "java" et "javac" sont bien reconnues par le système. J'utilise les drivers de connexion Oracle "ojdbc14.jar"java DatabaseListing/Client2
Voici l'erreur que j'obtiens:
Alors que dans Jcreator cette appli ne me donne pas cette erreur, elle fonctionne même bien.Error: java.net.SocketException: Software caused connection abort: recv failed
Voici le code qui génère cette erreur:
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
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..."); } }
Car dans l'invite de commande il m'affiche bien:
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);
Voici les valeurs que j'ai pour les CLASSPATH et PATHConnexion Okay...
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...
Partager