2009-08-26 12 views
4

J'ai généré le fichier .jar dans Windows.
Je dois exécuter ce fichier .jar sous UNIX.Comment lancer un fichier .jar sous UNIX?

Je courais cette commande (java -jar myJar.jar), mais il est de donner

java.lang.UnsupportedVersionError 

J'utilise java version 1.5.0.12 sous Unix.

+0

Merci pour changer la question par la suite. – Bombe

Répondre

5
java.lang.UnsupportedVersionError 

Vous devez essayer de lancer un fichier jar compilé avec JDK6, avec un fichier java1.5 local.

Vous pouvez:

  • mise à niveau de votre machine virtuelle sur Unix à 1,6
  • ou re-compiler vos classes avec un

:

javac -source 1.5 -target 1.5 -bootclasspath /path/to/jre1.5/lib/rt.jar 

pour vérifier si vous peut générer 1,5 bytecode compatible.

21

Identique à Windows.

java -jar file.jar 
0
  • Vérifiez que JDK ou JRE est installé. Installez si ce n'est pas le cas.
  • set JAVA_HOME = # JDK/JRE répertoire
  • $ JAVA_HOME/bin/java jar file.jar

Vous devez également garder à l'esprit que machine virtuelle Java ne sont pas compatibles avant, donc si vous avez fait un jar-fichier en utilisant JDK 1.6, il ne fonctionnera pas avec JDK 1.5!

Dans ce cas, vous pouvez:

  • installer JDK 1.6 pour Unix

  • recompiler le pot avec -target 1.5 drapeau (mais vous pouvez obtenir toute sorte d'erreurs dues à des incompatibilités de l'API, de sorte que le la première façon est beaucoup mieux)

+1

vous oubliez les paramètres '-source et -bootclasspath' (voir ma réponse ci-dessous) – VonC

1

Avez-vous essayé d'utiliser une version plus récente de Java sur votre système Unix?

Si vous contrôlez le fichier jar, pourriez-vous cibler Java 1.5 lors de sa compilation?

0

UnsupportedVersionError signifie que vous avez compilé le code source Java avec une version plus récente de Java que celle avec laquelle vous essayez de l'exécuter. Java est compatible avec les versions antérieures (les versions les plus récentes de Java peuvent exécuter des programmes Java compilés avec des versions antérieures), mais pas vers le haut (les anciennes versions de Java ne peuvent pas exécuter des programmes Java compilés avec des versions plus récentes).

Vous dites que vous utilisez Java 5 sous Unix. L'avez-vous compilé en utilisant Java 6 sous Windows? Alors, ça ne va évidemment pas marcher.

solutions possibles:

  • compilez votre code source en utilisant Java 5 sous Windows (l'option la plus sûre)
  • Utilisez les drapeaux du compilateur: -source 1.5 -target 1.5 pendant que vous compilez (cela ne vous protège pas contre l'utilisation de Java 6 seules les classes de la bibliothèque standard, donc ce n'est pas une garantie complète que votre programme fonctionnera sans erreurs sur Java 5)
  • Mise à niveau vers Java 6 sur Unix
+0

Vous avez oublié' -bootclasspath' (j'ai simplement ajouté l'option dans ma réponse;)) – VonC

0

R ecompilez votre application avec Java 5 sur votre machine Windows.

(Java 6 génère Java 6 byte code compatible par défaut à utiliser de nouvelles installations. Le plus facile pour vous est d'installer Java 5 JDK et l'utiliser pour recompiler votre application)

Questions connexes