Salut tout le monde, lors de l'exécution de mon programme j'ai rencontré un probleme dont j'ai pas trouvé de solution.
contVect est un String(qui est le résultat d'une execution précédente de mon programme) dont je dois tout d'abord afficher le contenu dans un JTextArea de mon interface graphique nommé textAreaProm et au meme temps ajouter le contenu de contVect dans mon fichier "file.pml".
just aprés ces 2 actions je passe directement à l'exécutions du processus proc.
Le probleme est lorsque le contenu de contVect est assez grand et donc l'exécution sera lente et doit prendre du temps pour s'exécuter, le fichier file.pml sera rempli mais pas d'affichage dans le JTextArea textAreaProm .j'ai remarqué que mon programme passe directement à l'exécution du "proc", le message Debut verif s'affiche et le programme se plante.
J'ai essayé avec les commandes écrites en rouges, le message Debut verif ne s'afficheras plus mais le message echec du test s'affuche en plus de beuacoup d'autres exceptions qui sont les suivantes:
Voici mon code:
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 Exception in thread "AWT-EventQueue-0" java.lang.IllegalMonitorStateException at java.lang.Object.wait(Native Method) at java.lang.Object.wait(Object.java:485) at Interface.ConsoleImp$14.actionPerformed(ConsoleImp.java:634) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272) at java.awt.Component.processMouseEvent(Component.java:6263) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6028) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51 console.textAreaProm.setText(contVect); BufferedWriter file=new BufferedWriter(new FileWriter("C:\\jspin\\jspin-examples\\file.pml")); try { file.append(contVect).wait(); } catch (InterruptedException ex) { Logger.getLogger(ConsoleImp.class.getName()).log(Level.SEVERE, null, ex); } file.close(); Runtime run= Runtime.getRuntime(); Process proc = null; Process proc2 = null; Process proc3 = null; Process proc4 = null; String cmd="spin -a -F C:\\jspin\\jspin-examples\\file.prp C:\\jspin\\jspin-examples\\file.pml"; String cmd2="......."; String cmd3="........"; String cmd4="......."; try{ //proc4.waitFor(); System.out.println("Debut verif"); proc=run.exec(cmd); proc.waitFor(); System.out.println("Fin verif: pan._ rempli"); System.out.println("Debut compil verifier"); proc2=run.exec(cmd2); System.out.println("Fin compilation"); proc2.waitFor(); System.out.println("Debut execute verifier"); proc3=run.exec(cmd3); System.out.println("Fin verif: pan.exe"); // proc3.waitFor(); System.out.println("Debut gener .trail"); proc4=run.exec(cmd4); System.out.println("Fin gener .trail"); }catch(Exception exp){ System.out.println("echec du test"); exp.printStackTrace(); }
SVP si quelcun a une solution à mon probléme n'hésite pas de me la donner.
Merci à tous
Partager