Bonjour,
En testant la création d'un programme JDAPI (pour oracle forms), j'ai pris un truc existant (qui fonctionne) qu'on m'avait filé y a pas mal de temps et j'ai tenté de le modifier.
Je compile tout à la main.
Mon script de compilation :
Quand je le lance à travers DOS (en étant directement dans le répertoire où se situe ma JDK et donc javac), aucun souci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 @ECHO OFF SETLOCAL SET ORACLE_HOME=D:\Oracle\Middleware\Oracle_FRHome1 SET PATH=%ORACLE_HOME%\BIN;%ORACLE_HOME%\jdk\bin\;%PATH% SET CLASSPATH=%ORACLE_HOME%\forms\java\frmjdapi.jar;%ORACLE_HOME%\forms\java\frmall.jar;%CLASSPATH% javac %1 ENDLOCAL
J'obtiens bien un .class, sans erreur de compilation.
Par contre à l'exécution :
En ayant fait quelque recherche je suis tombé sur un sujet sur ce forum qui expliquait que cette erreur apparait parce que les versions de java ne sont pas les même entre le compilateur et l'exécutable.
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 Exception in thread "main" java.lang.UnsupportedClassVersionError: WindowBlanc : 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:14 1) 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: WindowBlanc. Program will exit.
Mais j'ai vérifié (gestionnaires d'applications) et je ne dispose que de la version 7u51 en JDK et JRE.
Quand je fais un java - version j'obtiens :
Un javac -version :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
Donc a priori pas de problème jusque là.
Code : Sélectionner tout - Visualiser dans une fenêtre à part javac 1.7.0_51
Résultat je suis un peu perdu.
Je travaille sur un windows server 2008 64bits qui dispose d'une JDK 7u51 en 64 bits et d'une JRE 7u51 en 32 et 64 bits.
Je viens de désinstaller la version 32 bits et même combat.
Une idée ? Merci d'avance !
Partager