2017-08-09 1 views
3

Actuellement, j'ai une application qui est construite en utilisant Java RCP (Eclipse Mars). Il ne peut être lancé que si le système a JAVA 7 ou toute autre version supérieure (32 bits seulement). Lorsque vous essayez de lancer à l'aide de JAVA 6, une fenêtre contextuelle apparaît (voir pièce jointe popup). [Certains utilisateurs peuvent avoir Java 6 dans leur système]. Je voudrais ajouter ma propre boîte de dialogue personnalisée au lieu de cela. Comment cela peut il etre accompli? Des pensées? Je joins le journal des erreurs ici pour votre référence. Error Log 64 bit popupComment ajouter une fenêtre contextuelle personnalisée pour une application Java RCP qui ne démarre que lorsqu'elle a des versions java 7 ou supérieures (32 bits)?

Répondre

0

vous devez obtenir les informations lors de l'exécution et de lancer votre pop-up modal

ceci pour obtenir la version 1.6, 1.7 1.8 etc

String v = System.getProperty("java.specification.version"); 

cela pour obtenir l'arc. (32 ou 64)

System.out.println(System.getProperty("sun.arch.data.model")); 

cette méthode pour afficher votre pop-up de dialogue modale

JOptionPane.showMessageDialog(....); 

maintenant prendre cet exemple comme point de orienatation et construire celui-ci vos propres conditions:

public static void main(String[] args) { 
    String v = System.getProperty("java.specification.version"); 
    Double d = new Double(v); 
    if (Double.compare(d, 1.6) == 0) { 
     JOptionPane.showMessageDialog(null, "Ups!! this java version is not supported!", "Opala", 0); 
    } 
} 
+0

Merci pour la réponse. Mais cela n'a pas encore résolu mon problème. Je ne parviens pas à obtenir la version requise au moment de l'exécution. Le crash se produit beaucoup plus tôt, probablement au niveau du workbench. Impossible de comprendre. Si vous avez d'autres suggestions, s'il vous plaît laissez-moi savoir – ghost

0

Si vous ajoutez la ligne suivante à votre <executable>.ini sous la ligne -vmargs:

-Dosgi.requiredJavaVersion=1.7 

alors une boîte de dialogue avec un message qui ne peut pas être personnalisé (parce que le message est codé en dur dans le cadre Equinox Eclipse: voir source code) semblable au suivant pops au lieu:

enter image description here

Alternativement, vous pouvez regrouper votre application Eclipse RCP avec un JRE.

+0

Cela fonctionne très bien, mais il ne répond toujours pas à ma question. J'aurais toujours besoin d'une popup personnalisée car les utilisateurs pourraient encore essayer de lancer l'application avec une version java 64 bits. Dans ce cas, il n'y aurait pas de popup. Ce serait bien d'avoir un popup qui dit "mon application ne supporte que la JVM 32 bits (7 ou plus)" dans ce popup. – ghost

+0

J'ai essayé d'ajouter -d32 au-dessus de -Dosgi.requiredJavaVersion = 1.7 et cela fonctionne !. Il ne démarre que si Java 32 bits est installé (1.7 ou supérieur). – ghost

+0

'-d32' est un paramètre Java spécifique à Oracle. Quelle boîte de dialogue voyez-vous avec '-d32' et seulement une JVM 64 bits de la version 7 installée? Malheureusement, le message de la boîte de dialogue ne peut pas être personnalisé (voir mes modifications). – howlger