2010-12-09 68 views
0

Je rampais google quelques heures pour rechercher ce genre de problème, mais je ne pouvais pas trouver de solution de travail, j'espère que vos gars peuvent m'aider!Safari se bloque lorsque la JVM est tué

J'ai une applet Java qui lit les ports COM, après ce processus je vais le tuer pour pouvoir le relire avec une autre applet qui est chargée après avoir redirigé l'utilisateur vers une autre page.

Le problème est quand je tue le premier applet, le navigateur se bloque ou trou ferme sans raison ...

ci-dessous ma fonction tueur ^^

public void killMobileChecker() { 
       try { 
           System.exit(0); 
       } catch (Exception ex) { 
           if (log_level >= 4) { 
               ex.printStackTrace(); 
           } 
       } 
   } 

si je n'appeler cette fonction safari ne se ferme pas/crash mais l'applet Java suivante n'est plus capable de lire le port COM.

Est-ce que quelqu'un a une idée de ce que le safari ou moi-même fait mal?

** Modifier script pour tuer toutes les discussions ouvertes

private void closeConnection() { 

       if (portId != null && port_opened) { 
           try { 
               if (input != null) { 
                   input.close(); 
               } 

               if (output != null) { 
                   output.close(); 
               } 

               if (serialPort != null) { 
                   serialPort.close(); 
               } 

               port_opened = false; 
           } catch (Exception ioe) { 
               if (log_level >= 4) { 
                   ioe.printStackTrace(); 
                   System.out.println("System_Error_closing_Comm_Port"); 
               } 
           } 

           if (log_level >= 4) { 
               System.out.println("\r\nMobile Comm port closed\r\n"); 
           } 
//                LogUtilities.writeLog("\r\nClosing Mobile Comm port...\r\n"); 
       } 
   } 
+0

il semble que vous ayez besoin de fermer le port COM correctement plutôt que d'éteindre toute la JVM –

+0

Je suppose que je le fais correctement, je tue tous les threads avant de vouloir tuer toute la JVM – Maertz

Répondre

0

Quelle version JVM utilisez-vous? Après la mise à jour jdk1.6 10, l'applet doit utiliser un processus distinct du navigateur. Avant cela, le navigateur et l'applet partageaient le même processus.