Comme plégat a fait le travail, on le remercie, . lâche pas Yanos.
Comme plégat a fait le travail, on le remercie, . lâche pas Yanos.
RCP rulez!
Bon bah ça me fait une bonne nouvelle déjà car ça prouve que ça fonctionne. Merci beaucoup les gars
On dirait que tu compiles à la main. Est-ce que les commandes styles javac sont reconnues par une invite de commande DOS si j'ai seulement installé Eclipse. Je me dis que c'est peut-être les limites d'Eclipse qui ne reconnait pas les DLL.
Je vais tenter cet aprèm (argh le temps me manque )
Yanos, javac.exe est un exécutable faisant partir du JDK ou JRE de sun. Ça ne fait pas partie d'Eclipse, c'est ce qui te permet (java.exe et javaw.exe) de rouler un programme java tout simplement (c'est la machine virtuelle qui interprète tes fichiers .class). Javac.exe est le compilateur qui va prendre tes fichiers .java et les transformer en .class.
RCP rulez!
Oui je développais en Java sous Linux avant mais c'était de simple API et donc je compilais à la main comme tu décris.
Mais on m'a dit qu'avec Eclipse ça compilait au fur et à mesure, alors ça doit être un abus de langage ou bien je n'ai pas encore tout saisie sous Windows (ce qui ne m'étonnerait pas )
Enfin vous inquiétez pas j'ai bien installé tout ce qui faut.
Sinon je vous donne pas la réponse tout de suite car j'ai pas encore eu le temps (satané boulot )
Euh... je ne sais pas! Faut tester! Normalement, si tu as installé un JDK en plus d'Eclipse, la commande java sera obligatoirement (...hum... je m'avance peut-être mais bon...) reconnue, car l'installation place une copie de java.exe dans le répertoire windows/system32 (donc dans le path windows). Pour la commande javac, ce n'est pas le cas, et donc, si elle n'est pas reconnue, il faudra modifier ta variable d'environnement PATH en y ajoutant le chemin vers le répertoire /bin de ton JDK (ça, c'est un soucis de débutant qui revient souvent, avec une petite recherche avancée sur le forum "Général Java", mot-clefs "variable environnement", tu devrais trouver ton bonheur!)Envoyé par Yanos
Le problème, avec Eclipse, comme Netbeans, et sans doute d'autres, c'est que tu penses toujours que l'application se lance depuis tel répertoire, et que donc elle trouvera les dll, ou les autres ressources forcément, parce que tu lui a mis le chemin qui allait bien... mais très souvent, le répertoire de lancement n'est pas celui qu'on croit, et ça met tout par terre. Donc, à la limite, toujours vérifier au lancement de l'application dans quel répertoire on est... ça permet d'éviter des recherches laborieuses d'erreur là où il n'y en a pas.Envoyé par Yanos
Quand je n'ai qu'une classe à compiler, oui, je le fais en manuel, ça prend moins de temps que de lancer l'artillerie lourde! Sinon, dès que je dois avancer mes projets un peu plus velus, j'utilise Netbeans... ou Eclipse si il n'y a pas d'IHM à faire.Envoyé par Yanos
Par défaut, oui. C'est une option que tu peux désactiver si un jour ça t'agace...Envoyé par Yanos
alors j'ai fait la compilation à partir de mon projet dans mon workspace
(je ne sais pas à quoi servait ton ".;" , avec et sans ça ne semble rien changer )
Code : Sélectionner tout - Visualiser dans une fenêtre à part "C:\Program Files\Java\jdk1.5.0_06\bin\javac.exe" -classpath "C:\Program Files\Java\jdk1.5.0_06\lib\comm.jar" communication.java
ça compile sans bug
par contre je le lance
et là j'ai un crash ... qui ma foi ressemble beaucoup à celui que j'avais dans éclipse
Code : Sélectionner tout - Visualiser dans une fenêtre à part "C:\Program Files\Java\jdk1.5.0_06\bin\java.exe" -classpath "C:\Program Files\Java\jdk1.5.0_06\lib\comm.jar" communication
Exception in thread "main" java.lang.NoClassDefFoundError: Communication
Est-ce que tu as essayé le programme avec le bout de code que j'avais donné au début?
Envoyé par YanosBen maintenant au moins tu vois ce que ça change entre toi et moi!Envoyé par Yanos
Moi je l'ai mis, et je n'ai pas eu de crash!
Le ".;" inclut le répertoire courant dans le classpath. Autrement dit, si tu ne le mets pas, il n'ira pas voir dans le répertoire courant, et ira seulement chercher les classes dans le fichier "C:\Program Files\Java\jdk1.5.0_06\lib\comm.jar", où évidemment il ne trouvera pas ton main, vu que ce n'est pas là qu'il se trouve, d'où évidemment le message d'erreur.
Donc tu le mets. Pour la commande javac, tu peux t'en passer, vu que tu lui fournis le nom du fichier java à compiler. Mais pour la commande java, tu le mets.
Tu aurais au moins pu faire l'effort de vraiment tester TOUTE ma ligne de commande... Mais bon, c'est en se cassant la figure qu'on apprend à marcher!
Oui... mot pour mot...Envoyé par Yanos
A la différence près qu'avant il ne trouvait pas la dll, et que maintenant il ne trouve pas le main....Envoyé par Yanos
C'est toujours le même problème, tu lances ton programme sans lui spécifier où il peut trouver les ressources. Un coup c'est la dll, un autre c'est le main... tant que tu ne lui fourniras pas toutes les informations en même temps, tu auras une erreur...
En fait hier j'ai testé avec et sans le ".;". Je préfère reporter au lendemain plutôt que bâcler le boulot mais dans tout les cas j'avais un crash.
Par contre je n'avais pas testé si le compilateur était sensible aux Majuscules/Minuscules et je crois bien que si. Les erreurs changent en fonction de ça. Donc j'ai bien respecté tout l'ensemble.
J'ai aussi noté qu'un espace après le ".;" fait planter l'affaire
Mais je dois me planter qq part quand même. Comme je le disais j'ai un crash dans tout les cas.
Je recapitule ce que j'ai fais
Je compile à partir de mon projet situé dans C:\doc[...]\workspace\Communication\Communication
ça compile sans erreur (dans tout les cas d'ailleurs)
Code : Sélectionner tout - Visualiser dans une fenêtre à part "C:\Program Files\Java\jdk1.5.0_06\bin\javac.exe" -classpath .;"C:\Program Files\Java\jdk1.5.0_06\lib\comm.jar" Communication.java
Par contre si je lance la commande
j'obtiens sur ma fenêtre ce qui suit
Code : Sélectionner tout - Visualiser dans une fenêtre à part "C:\Program Files\Java\jdk1.5.0_06\bin\java.exe" -classpath .;"C:\Program Files\Java\jdk1.5.0_06\lib\comm.jar" Communication
je continue de voir si j'ai pas fait une autre bourde
ou bien je n'aurai qu'à me durcir le front
Tu as mis la dll où?
bein je l'ai mis partout ne sachant pas où il fallait le mettre (le DLL)
Avec toujours la même chose, il compile bien mais plante au lancementc:\Documents and Settings\poste\workspace
c:\Documents and Settings\poste\workspace\Communication
c:\Documents and Settings\poste\workspace\Communication\Communication
C:\Program Files\Java\jdk1.5.0_06\bin
C:\Program Files\Java\jre1.5.0_06\bin
C:\Windows\system32
J'ai rien trouvé de particulier ormis que je ne comprends pas pourquoi j'ai comme erreuren tout cas je suis bien blasé, je crois que je vais abandonner
Code : Sélectionner tout - Visualiser dans une fenêtre à part "no LinuxSerialParallel in java.library.path"
Si ça peut te rassurer l'espace de dix secondes, moi non plus je ne comprends pas!Envoyé par Yanos
rah non, ne jamais abandonner!Envoyé par Yanos
Bon, voyons voir...
Est-ce que tu as supprimé tous les fichiers *.so que tu aurais pu mettre dans tes répertoires? (et évites de mettre les dll partout, tu vas te retrouver avec une vraie poubelle en guise de disque dur sinon à l'avenir...)
En fait l'erreur ne vient pas de la dll, il la trouve bien maintenant... enfin, apparemment...
Ensuite, histoire d'être sûr... as-tu vérifié que tu utilises le bon fichier javax.comm.properties?
N'y aurait-il pas une ligne qui ferait référence à ce fameux "LinuxSerialParallel" dans la liste des drivers?
Au fait, le message d'erreur fait référence à la ligne 24 du fichier Communication.java. Dans le code que tu as mis au début, ça pointe sur la dernière ligne... pourrais-tu préciser à quoi correspond la ligne 24 stp? (je présume que c'est:
mais c'est juste pour être sûr...
Code : Sélectionner tout - Visualiser dans une fenêtre à part portId=(CommPortIdentifier)portList.nextElement();
et bien j'ai tout pris dans le tutorial de Christophe Jolivet, donc mon petit programme ne fait que lister les ports disponibles et je pense que la ligne que tu cites dois correspondre à "Passes au port suivant".
Et quand je pense que ce n'est qu'un test que j'essaye de compiler et que ça fait plus de 2 semaines maintenant que je suis dessus...
J'avais déjà recomencé toute l'installation l'autre fois donc il n'y a plus de fichiers SO.
Au début je n'avais mis le DLL que dans le répertoire system32 de windows, puis au fur et à mesure je l'ai copié dans le repertoire de mon projet, puis de mon main, puis dans le bin de JDK, puis dans le bin de JRE.
mais mon erreur reste identique.
pour ce qui est du javax.comm.properties j'ai seulement pris celui qui était dans le package. C'est vrai que je ne l'ai jamais ouvert donc je vais voir ce qu'il y a dedans
NNNNnnnooooooooooooonnnnnnnnnnnnnnnnn!!!!!!!!!!!!!!!!!!!!!
voilà ce qu'il y a dans le properties
je suis dégouté
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 # Implementation specific driver driver=com.sun.comm.LinuxDriver # Paths to server-side serial port devices serpath0 = /dev/ttyS0 serpath1 = /dev/ttyS1 # Paths to server-side parallel port devices parpath0 = /dev/parport0 parpath1 = /dev/parport1
c'est configuré pour Linux ...
bah oui mais il dit que c'est les exemples qui étaient configuré pour Windows, pas l'API en elle-même
le tutorial de l'API Javax.comm
Edit : j'essaye de changer le
driver=com.sun.comm.LinuxDriver
par
driver=com.sun.comm.win32Driver
et sinon pour les /dev/ je ne sais pas quoi mettre
bien j'ai trouvé qu'il y avait peut-être une version plus récente et donc peut-être qu'elle est bien configurée.
https://sdlc2a.sun.com/ECom/EComActi...FE232D5B08E653
Car j'ai essayé avec ma solution en changeant le ficher javax.comm.properties comme suis :
en plus il peut y avoir des machines (comme mon portable) qui peuvent avoir jusqu'à 7 port COM, ou interprété en tant que tel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 # Implementation specific driver driver=com.sun.comm.Win32Driver # Paths to server-side serial port devices serpath0 = /COM1 serpath1 = /COM2 # Paths to server-side parallel port devices parpath0 = /LPT1 parpath1 = /LPT2
Mais malheureusement ça ne marche pas,
ça me met
bref je pense que j'ai écris une grosse bétise enfin j'ai essayé au moins
Code : Sélectionner tout - Visualiser dans une fenêtre à part Error instantiating class com.sun.comm.win32Driver
Edit : non même pas puisque dans le properties que je viens de télécharger c'est exactement ce qui est mis dedans
de plus le comm.jar semble être différent
Essaye en mettant juste:Envoyé par Yanos
dans le fichier properties, sans les serpth* et les parpath*.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 # Implementation specific driver driver=com.sun.comm.Win32Driver
Celui du package que tu nous a mis en lien pour que l'on teste est définit comme cela...
oui en fait dans le nouveau package c'est exactement comme tu le dis (et ça marche). ça doit surement paraître evident d'aller dans le fichier de propriété mais je ne m'en étais jamais servi auparant donc je savais pas
Maintenant je vais essayer de me connecter au port et de récupérer le flux dans un fichier.
Si j'ai un problème je posterai directement dans Java vu que maintenant c'est bien configuré.
Un grand merci à Plegat et à toi aussi JP
Bonjour,
J'ai vu que vous aviez il y'a quelques temps un pb avec l'api com.
Puis-je savoir commet t'as résolu le pb concernanat le msg
Error instantiating class com.sun.comm.Win32Driver
Merci.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager