Forum Programmation.java raccourci java et javac

Posté par  .
Étiquettes : aucune
0
6
mai
2007
bonjour,
je tiens a preciser que je suis un nb
j'ai installé l'environnement java, la compil et l'execution marchent mais j'aimerai faire un raccourci pour ne pas avoir a chaque fois a taper :
/usr/java/jdk1.6/bin/javac *.java
puis :
/usr/java/jdk1.6/bin/java *
mais directement a partir de n'importe quel endroit depuis la console taper javac et java tout simplement.

Une chose qui risque de poser probleme : il semble qu'un environnement java ait ete installé de base dans mon installation linux puisque la commande java existe mais elle ne marche pas
pour vous donner quelques infos

si j'utilise la commande java standart (sans /usr/java/bin/...), voici le pb

bash-3.1$ java Bonjour
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)


POUR LA VERSION DE JAVA

bash-3.1$ java -version
java version "1.5.0_09"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_09-b01)
Java HotSpot(TM) Client VM (build 1.5.0_09-b01, mixed mode, sharing)
bash-3.1$
  • # dans l'ordre...

    Posté par  . Évalué à 2.

    1°) regarder dans /usr/bin s'il n'y a pas deja un lien
    /usr/bin/java -> /usr/java/jre1.5/bin/java
    (ou quelques choses qui y ressemble)

    2°) ton erreur est "normal" tu essaie d'executer un binaire java 1.6 avec une machine virtuelle 1.5

    3a°) tu peux essayer de desinstaller la 1.5
    ou
    3b°) tu peux modifier le lien /usr/bin/java vers ta version 1.6 (au risque d'avoir d'autres applis java qui ne fonctionneraient plus)

    idem pour javac
    • [^] # Re: dans l'ordre...

      Posté par  (site web personnel) . Évalué à 2.

      alias javac='/usr/java/jdk1.6/bin/javac *.java'
      alias java='/usr/java/jdk1.6/bin/java *'

      Puis si tu veux les pérenniser tu rajoutes ces deux lignes dans ton ~/.bashrc
      • [^] # Re: dans l'ordre...

        Posté par  . Évalué à 2.

        Tout d'abord je tiens a m'excuser de l'absence de formules de politesse dans mon message initiale. Je vous remercie de vos reponses ca m'a été d'une grande aide.

        Ce que j'ai fait :
        j'ai d'abord essayé les alias--> ca marche impecable!!


        le fichier ~/.bashrc tout simplement introuvable chez moi
        alors je l'ai crée avec les 2 lignes suivantes
        alias javac='/usr/java/jdk1.6/bin/javac *.java'
        alias java='/usr/java/jdk1.6/bin/java *'
        et en rebootant les alias sont memorisés
        TOUT EST OK MERCI

        par contre je remarque que les alias ne sont memorisés que sous la console de l'interface graphique, pas sous lignes de commandes mais bon ca me suffit amplement.

        Encore une fois merci je suis content de faire partie de votre communauté (si vous m'acceptez), j'espere moi aussi a mon tour pouvoir aider les autres. A bientot
        • [^] # Re: dans l'ordre...

          Posté par  . Évalué à 1.

          Alors essaye d'exécuter tes alias dans /etc/profile plutôt que dans ~/.bashrc.
  • # Makefile

    Posté par  (site web personnel) . Évalué à 3.

    Les Makefile sont pas vraiment adaptés à Java mais ça reste pratique tant qu'on n'a pas des trucs trop énormes ou compliqués.
    JPATH ?= /usr/java/jdk1.6/bin/
    JAVA ?= $(JPATH)java
    JFLAGS += -ea
    JC ?= $(JPATH)/javac
    JCFLAGS += -g -deprecation -Xlint:all
    JDB ?= $(JPATH)/jdb
    JFLAGS += -agentlib:jdwp=transport=dt_socket,address=$(DEBUG_PORT),server=y,suspend=n
    DEBUG_PORT ?= 1234
    
    %.class : %.java
            $(JC) $(JCFLAGS) $<
    
    .PHONY: run debug
    run:
            $(JAVA) $(JFLAGS) $(MAIN_CLASS) $(MAIN_ARGS)
    
    debug:
            $(JDB) -attach localhost:$(DEBUG_PORT)
    $ make Bonjour.class

    pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.

    • [^] # Re: Makefile

      Posté par  . Évalué à 3.

      Salut,

      Les makefiles sont conçus à la base pour compiler des programmes C(++) et non du Java, pour Java il existe un genre de Makefile nommé ANT ( pour plus de détails, ~>http://ant.apache.org/ )

      Rien de bien compliqué non plus, c'est basé sur un fichier XML qui est adaptable à souhait, il réalise les mêmes opérations que le Makefile.

      A approfondir car c'est un outil puissant, et surtout pour Java !
  • # Mandriva et Debian

    Posté par  (site web personnel) . Évalué à 2.

    Dans Mandriva et Debian (et sans doute d'autres), il y a un utilitaire nommé update-alternatives qui sert à gérer les liens symboliquess qu'on trouve dans bin et /usr/bin. Je regarderai par là si j'étais toi.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.