2014-05-05 1 views
0

Je développe un projet web en Java 6 avec Netbeans 8. J'ai récemment décidé de passer de JUnit à TestNG de la manière la plus standard possible: la bibliothèque TestNG est automatiquement activée quand j'ajoute un cas de test TestNG à mon projet Netbeans ...TestNG bloque la construction du projet Netbeans 8 (Java 6)

... Et maintenant je ne peux plus construire mon projet. L'erreur est:

java.lang.UnsupportedClassVersionError: org/testng/TestNG : Unsupported major.minor version 51.0 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: org.testng.TestNG. Program will exit. 

Quand je change la plate-forme Java dans Netbeans Java 7 (par défaut), la génération réussit et mes tests fonctionnent comme ils le devraient. De la recherche en ligne, il se trouve que la version Java 51 = Java 7. Quand je suis renifler dans le fichier testng-dist.jar, il ressemblait à la construction, je l'ai compilé avec 7 JDK:

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.8.4 
Created-By: 1.7.0_17-b02 (Oracle Corporation) 
Main-Class: org.testng.TestNG 
Implementation-Version: 6.8.1-201304241555 

Mais quand j'utilise la technique alternative spécifiée here, je trouve qu'il a été compilé pour Java 1.5:

ca fe ba be 20 20 20 **31** 20 13 01 20 03 28 29 56 

(0x31 = 49 = Java 1.5)

donc, à moins que je suis malentendu des choses, il n'y a pas Reaso n pourquoi ma configuration ne devrait pas fonctionner.

Mes fichiers build.xml et build-impl.xml sont tous les deux complètement standard, car je n'ai rien modifié manuellement. Je ne suis pas prêt à migrer vers Java 7, et je suis sûr que je veux utiliser TestNG si possible. J'ai essayé de construire la source TestNG à partir du repo Git, mais cela a échoué parce que je n'ai absolument aucune expérience avec Ant (ou Maven, d'ailleurs). Il s'avère que je suis un peu perdu en mer ici.

+0

Comment lancez-vous votre fichier build.xml: à partir de l'IDE ou du terminal? Dou vous avez à la fois JDK1.7 et JDK1.6? – olyv

+0

Tout se passe dans l'EDI (je fais juste un clic droit sur le projet et appuie sur "Test"). Et oui, j'ai les deux JDK 1.6 et 1.7. Lorsque je change le JDK dans Propriétés-> Bibliothèques-> Plate-forme Java de 1.6 à 1.7 et que j'appuie sur Test, les tests commencent à fonctionner correctement. – blagae

Répondre

0

Je vais répondre à ma propre question pour référence future. Il y a plusieurs façons dont j'ai essayé de contourner cela, mais il ne semble pas possible de le faire fonctionner sur Java 6.

Questions connexes