Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1262 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [java] génération automatique des "import" ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[java] génération automatique des "import" ?

n°923012
arsunik
ma tuxitude me beastifie
Posté le 14-12-2004 à 16:34:58  profilanswer
 

Existe-t-il un programme (sous linux) qui remplacerait les :
import java.util.*;
 
par des import des classes effectivement utilisées dans le .java, par exemple :
 
import java.util.Hashtable;
import java.util.Vector;
...

mood
Publicité
Posté le 14-12-2004 à 16:34:58  profilanswer
 

n°923020
Bidem
Posté le 14-12-2004 à 16:42:16  profilanswer
 

Eclipse peut faire ça :
 
 -> Organize Imports

n°923037
arsunik
ma tuxitude me beastifie
Posté le 14-12-2004 à 16:57:17  profilanswer
 

Euh il faudrait que j'ouvre les fichiers un par un avec eclipse :|
Sans compter que je n'ai pas Eclipse et je n'aime pas installer de trucs trop lourds et anti-ergonomiques.
Je vais chercher avec "organize imports" comme mots clés, j'aurais ptet plus de chance que précédemment :)

n°923054
mazargman
Posté le 14-12-2004 à 17:06:22  profilanswer
 

ça me dit quelque chose cette histoire... Il me semble que des collègues utilisaient une tâche ant pour "harmoniser" leur code avant de livrer. Je demande.

n°923091
arsunik
ma tuxitude me beastifie
Posté le 14-12-2004 à 17:28:16  profilanswer
 

Euh je viens de lancer Eclipse...
Le "Organize Imports" était grisée (inaccessible).
J'ai essayé de regarder dans le menu Preferences voir si on pouvait régler quelque chose.
Comme je ne trouvais pas, je suis retourné sous Mozilla.
Ca a commencé a swapper un peu.
Quand je suis revenu sous Eclipse, le curseur de la souris s'est figé, le disque s'est mis a crier. Quelques secondes plus tard tout est devenu noir : j'ai été deconnecté de ma session X...
Je vais plutôt me faire un pti script perl ou une macro Emacs, ça me prendra même pas une heure.

n°923143
arsunik
ma tuxitude me beastifie
Posté le 14-12-2004 à 18:13:11  profilanswer
 

Done.

Code :
  1. #! /usr/bin/perl -w
  2. # fastjar tvzf toto.jar | grep .class | grep -v '\$' | sed -e "s:.class::" -e "s:/:.:g"
  3. # >> ~/.jmport
  4. #
  5. # Usage: jmport fichier.java
  6. my %t;
  7. my %imp;
  8. my %used;
  9. open (DATA, "$ENV{HOME}/.jmport" );
  10. while (<DATA> ) {
  11.     chop;
  12.     if (/\.([A-Z][^.]+)$/) {
  13. $t{"$1"} = $_;
  14.     }
  15. }
  16. while (<> ) {
  17.     if (/import\s+(\S+)\.\*\s*;/) {
  18. $imp{$1} = 1;
  19.     }
  20.    
  21.     if (/[ \t(]([A-Z][A-Za-z0-9]+)/) {
  22. my $i = $t{$1};
  23. if ($i) {
  24.     $i =~ /^(.*)\.([A-Z][^.]+)$/;
  25.     if ($imp{$1}) {
  26.  $used{$i} = 1;
  27.     }
  28. }
  29.     }
  30. }
  31. foreach my $key (sort keys %used) {
  32.     print "import $key;\n";
  33. }


Reste plus qu'à mettre au propre :)


Message édité par arsunik le 14-12-2004 à 18:14:24
n°923323
Jubijub
Parce que je le VD bien
Posté le 14-12-2004 à 21:33:50  profilanswer
 

je vois pas comment un script perl peut analyser une classe et savoir que c une collection qu'il faut mettre à la place d'un * ...
 
tous les IDE font ce que tu veux...t'a Eclipse, Netbeans, IDEA, jBuilder, etc...


---------------
Jubi Photos : Flickr - 500px
n°923444
arsunik
ma tuxitude me beastifie
Posté le 15-12-2004 à 00:04:32  profilanswer
 

Tu oublies jde !
Comme c'est le seul sous Emacs à ma connaissance, c'est le seul que je pourrais avoir envie d'utiliser.
Quant au script perl son principe est simple :
_ construire la liste de tous les import possible.
_ répérer tous les "import *" au début.
_ chercher tous les mots commençant par une majuscule dans le fichier et regarder si ce mot est dans la liste des import. Ensuite on vérifie que cet import était dans les "import *" du début.
 
Bon ok ce n'est pas parfait, ça peut rajouter des imports inutiles et ya meme un bug quand deux classes ont le meme nom dans la liste des imports mais j'avais plus de 50 fichiers à traiter et j'allais pas les ouvrir un par un dans un ide...

n°923457
Jubijub
Parce que je le VD bien
Posté le 15-12-2004 à 00:46:43  profilanswer
 

et pkoi tu bosses pas sous un IDE ??? c très pratique en java...t'a tt sous la main, ca gère le classpath, t'a des fonctions hyper avancées de refactoring, etc...


---------------
Jubi Photos : Flickr - 500px
n°923479
Taz
bisounours-codeur
Posté le 15-12-2004 à 07:25:04  profilanswer
 

Jubijub a écrit :

et pkoi tu bosses pas sous un IDE ??? c très pratique en java...t'a tt sous la main, ca gère le classpath, t'a des fonctions hyper avancées de refactoring, etc...

ouais, puis après t'es comme un con, parce qu'avec toute la bonne volonté du monde, t'arrives pas à lancer ton application sans passer par ton IDE.

mood
Publicité
Posté le 15-12-2004 à 07:25:04  profilanswer
 

n°923571
arsunik
ma tuxitude me beastifie
Posté le 15-12-2004 à 10:03:35  profilanswer
 

Jubijub a écrit :

et pkoi tu bosses pas sous un IDE ??? c très pratique en java...t'a tt sous la main, ca gère le classpath, t'a des fonctions hyper avancées de refactoring, etc...


 
Hé ben non, je fais mes ptites fonctions Emacs à la main et je compile avec un Makefile (ant c'est trop lent !). En plus j'utilise jikes et fastjar et bizarrement ça va aussi vite à compiler que du c...

n°923585
kadreg
profil: Utilisateur
Posté le 15-12-2004 à 10:20:41  profilanswer
 

objecteering, en mode imports optmisiées ....
 
[:neowen]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°923592
la viper
Posté le 15-12-2004 à 10:26:44  profilanswer
 

Taz a écrit :

ouais, puis après t'es comme un con, parce qu'avec toute la bonne volonté du monde, t'arrives pas à lancer ton application sans passer par ton IDE.


 
 :whistle:  
Rien ne t'interdit, une fois développé ton projet sous Eclipse de lancé par toi même l'execution de ton projet.. juste un truc, Eclipse te permet de faire ça en 1 clic et donc tu passes 99% à programmer.
Le gain est d'autant plus enorme quand tu travailles en equipe et simultanement ..etc etc.
 
SHIFT+CTRL+o le raccourci pour organiser les dépendances.
SHIFT+i le raccourci pour indenter le code
SHIFT+d suppression de la ligne courrante
SHIFT+CTRL+c met en commentaire la ligne
...


Message édité par la viper le 15-12-2004 à 10:27:56
n°923606
benou
Posté le 15-12-2004 à 10:45:17  profilanswer
 

C'est bien de savoir se démerder avec un éditeur de texte et un shell, c'est même indispensable à mon avis.
Mais travailler tout le temps de cette façon, c'est vraiment perdre un temps dingue ! Ne serait-ce que pour du debugage ...
 
et quand t'es sous un IDE, les imports s'ajoutent automatiquement => tu n'as même plus à t'en soucier !


---------------
ma vie, mon oeuvre - HomePlayer
n°923633
uriel
blood pt.2
Posté le 15-12-2004 à 11:11:53  profilanswer
 

Taz a écrit :

ouais, puis après t'es comme un con, parce qu'avec toute la bonne volonté du monde, t'arrives pas à lancer ton application sans passer par ton IDE.


 
j'allais dire que tu avais tort et puis http://forum.hardware.fr/forum2.ph [...] 10#t923628 :/


---------------
IVG en france
n°923683
mazargman
Posté le 15-12-2004 à 11:38:58  profilanswer
 

Pour revenir au sujet de départ, j'ai trouvé des tâches Ant qui peuvent être utiles:
-CleanImports
-Checkstyle  
 
http://ant.apache.org/external.html

n°923715
arsunik
ma tuxitude me beastifie
Posté le 15-12-2004 à 12:00:12  profilanswer
 

Merci, j'ai l'impression que CleanImports fait ce que je voulais, je vais regarder ça.
Checkstyle je l'utilise pour vérifier la conformité du code aux standards de programmation sun.
Ya quelques autres outils qui ont l'air sympas sur cette page :)

n°924182
Jubijub
Parce que je le VD bien
Posté le 15-12-2004 à 17:07:00  profilanswer
 

je persiste pour l'IDE...
 
après, si tu bosses proprement en java, tu auras fait un script ant, que rien ne t'empeche de lancer depuis la ligne de commande, via batch ou autre
 
bref, c pas les solutions qui manquent...
 
maintenant si t'a une technique pour faire un gros refactoring qui implique plein de méthodes, avoir les imports auto, la mise en forme auto, les métriques du code, le déploiement auto, le lancement, le débugage, le profiling  en ligne de commande de façon plus rapide qu'avec un IDE, je prends...
 


---------------
Jubi Photos : Flickr - 500px
n°924224
mazargman
Posté le 15-12-2004 à 17:37:20  profilanswer
 

J'ai bossé au sein d'une équipe ou tout le monde utilisait jbuilder sauf un irréductible qui bossait sous emacs. Il se trouve que son code était aussi nickel que le notre et qu'il respectait les délais autant que nous. En terme de gestion de conf, de production, etc... il n'y avait pas de différences entre son travail et le notre. Je ne vois donc pas pourquoi on l'aurait forcé à ne pas utiliser un outil qu'il maitrise super bien sous prétexte que nous on utilisait un IDE qui fait plein de choses utiles.
 
Par contre siouplait, ça:  

Citation :

t'arrives pas à lancer ton application sans passer par ton IDE


ça n'a pas de sens! C'est vrai que certains peuvent être lobotomisés après  une utilisation trop intensive d'un IDE, mais ce n'est certainement pas une généralité!  :non:

n°924237
benou
Posté le 15-12-2004 à 17:55:51  profilanswer
 

le debugage il le faisait sous emacs ? et l'archivage sur le repository en ligne de commande ???  
 
enfin je sais pas ... avec bcp d'entrainement, on peut peut être très bien couper un steack avec un silex, mais pourquoi ne pas utiliser un couteau à steack ?


---------------
ma vie, mon oeuvre - HomePlayer
n°924558
raytaller
Posté le 15-12-2004 à 22:16:17  profilanswer
 

ArSuniK a écrit :

Hé ben non, je fais mes ptites fonctions Emacs à la main et je compile avec un Makefile (ant c'est trop lent !). En plus j'utilise jikes et fastjar et bizarrement ça va aussi vite à compiler que du c...


 
si lent que ça ?
 
sous eclipse, j'ai même pas le temps de faire remonter mon index après l'appui sur la touche "B" du ctrl+B à cause de l'inertie, que c'est déjà compilé, et j'ai pas une machine de compet', loin de là
 
 

Jubijub a écrit :

maintenant si t'a une technique pour faire un gros refactoring qui implique plein de méthodes, avoir les imports auto, la mise en forme auto, les métriques du code, le déploiement auto, le lancement, le débugage, le profiling  en ligne de commande de façon plus rapide qu'avec un IDE, je prends...  


+1

eclipse 3.0 a écrit a écrit :

Cher utilisateur. Tu as utilisé une méthode qui n'existe pas. Veux-tu que je la crée pour toi avec les arguments qui vont bien ?


n°924781
mazargman
Posté le 16-12-2004 à 10:05:21  profilanswer
 

attends, je ne dis pas que tout le monde doit se passer d'un IDE. Simplement, sur un projet assez important, j'ai travaillé avec un gars qui coupait son steack avec un silex sans qu'on voit de différences entre son travail et le notre. Chacun son outil. Si il préfère le silex je vais pas lui imposer le couteau à bout rond (jbuilder :D)  
 
Sinon raytaller, t'es sous eclipse donc c'est normal, tout est compilé en live. Maintenant fait un "clean" sur ton projet et compile avec les deux méthodes, tu verras que, pour un projet un peu gros, ben ant est plus lent. Mais bon, avant qu'on vienne me lancer des couteaux  ;) je tiens à préciser que oui, ant c'est bien, mangez-en!  
 
Hm, j'ai l'impression qu'avec "vous" c'est: "Tout le monde sous windows+eclipse. Le premier qui sort du rang on lui coupe le bras. Non mais oh! on sait bosser nous!"  :lol:

n°924856
benou
Posté le 16-12-2004 à 11:13:32  profilanswer
 

bha disons que je suis passé par cette phase "emacs&JDE rulez" et que j'ai découvert eclipse ... je pourrais jamais faire marche arrière ...
 
maintenant, dans ma boite, y a des mecs qui jurent que par ultraedit ou emacs pour le dev ... chacun fais ce qu'il veut, mais j'ai du mal à croire que ce soit un gain de temps.
 
peut être que si ton mec passait sur eclipse il serait encore plus rapide [:spamafote]
 
c'est un peu comme tout : faut essayer avant de dire que c'est bien ou pas :)


---------------
ma vie, mon oeuvre - HomePlayer
n°924863
Jubijub
Parce que je le VD bien
Posté le 16-12-2004 à 11:19:29  profilanswer
 

idem : avant je codais sous JEdit ...je suis passé à Eclipse pour java ...un peu de force, je m'explique :  
- pour mon stage de maitrise, g du reprendre une appli codée sous jBuilder très salement...bref, je me perdais partout...et g trouvé la fonction géniale de get Declaration / get Usage d'Eclipse ...(présente sous IDEA et jBuilder il est vrai) ...c magnifique...
 
en fait au début faut pas se le cacher tu perds ton temps...faut comprendre la logique de l'IDE, la méthodologie ...mais une fois que tu l'as, je mets au défi qqn sous Emacs d'etre plus rapide qu'un utilisateur expériementé d'un IDE ...
 
surtout Eclipse qui se bonifie gravement avec le temps


---------------
Jubi Photos : Flickr - 500px
n°924866
arsunik
ma tuxitude me beastifie
Posté le 16-12-2004 à 11:21:16  profilanswer
 

benou a écrit :

le debugage il le faisait sous emacs ? et l'archivage sur le repository en ligne de commande ???  


 
Un programme bien écrit en Java ne bug pas :o
Pour l'archivage, tu parles de cvs ? si oui, ya un mode Emacs très bien fait :)

n°924871
Jubijub
Parce que je le VD bien
Posté le 16-12-2004 à 11:23:36  profilanswer
 

et sous subversion ? ou perforce ? ou autre ?
 
--> pis un programme bien écrit tu peux vouloir le profiler qd meme ;)


---------------
Jubi Photos : Flickr - 500px
n°924874
arsunik
ma tuxitude me beastifie
Posté le 16-12-2004 à 11:25:17  profilanswer
 

raytaller a écrit :

si lent que ça ?


 
Oui, ant+javac c'est lent.
En modifiant seulement quelques fichiers, il lui faut plusieurs dizaines de secondes pour compiler.
Avec jikes, même pas une seconde.

n°924882
arsunik
ma tuxitude me beastifie
Posté le 16-12-2004 à 11:40:17  profilanswer
 

benou a écrit :


c'est un peu comme tout : faut essayer avant de dire que c'est bien ou pas :)


 
Cf plus haut, je viens d'essayer Eclipse, ça a fait ramer ma machine à fond (p4 1,6GHz & 256 Mo de RAM) et au bout de 3mn, ça m'a deconnecté de ma section X...
 
De toute façon, je suis quelque peu dépendant du Emacs-lisp :)
Et puis ça ressemblait à un clicodrome ce truc, je vois pas bien l'intérêt d'avoir des fenetres partout comme ça, yavait 30% de la surface seulement utilisée pour le code. Je me doute que ça se configure mais ça ne me donne pas une bonne première impression.
Bon ok, c'est pas un test très poussé :) Faudrait que je fasse un pti projet avec.

n°924886
arsunik
ma tuxitude me beastifie
Posté le 16-12-2004 à 11:45:06  profilanswer
 

Jubijub a écrit :

et sous subversion ? ou perforce ? ou autre ?


 
Je sais pas mais au pire suffit d'écrire un pti mode Emacs :D

n°924893
Jubijub
Parce que je le VD bien
Posté le 16-12-2004 à 11:51:11  profilanswer
 

--> oui donc c ce qu'on se tue à te dire : Eclipse faut s'y habituer (tu peux passer en 1 double clic à 100% de la zone en code...)...pis les fenetre c l'outline, la console, enfin plein de trucs super utiles...
 
-->pis franchement, sauf ton respect, c une réponse à la con ;) : si en un temps donné tu dois faire un projet avec Perforce, tu devras prendre sur ce temps pour écrire ton mode ...sous eclipse tu fais le find plugin qui va bien ...


---------------
Jubi Photos : Flickr - 500px
n°924913
arsunik
ma tuxitude me beastifie
Posté le 16-12-2004 à 12:09:17  profilanswer
 

Oui mais ensuite tu diffuses le mode Emacs, chaque développeur dans le monde ne va s'amuser a refaire le sien !
 
D'ailleurs Eclipse c'est un logiciel libre ? Si oui, le plugin Eclipse qui va bien a surement été developpé par quelqu'un qui en avait eu besoin un jour :)


Message édité par arsunik le 16-12-2004 à 12:11:39
n°924981
patachou
Posté le 16-12-2004 à 13:45:53  profilanswer
 

Sinon tu fais ctrl+M pour avoir la fenetre en 100% sous eclipse, c tres pratique

n°925075
Gonzoide
Les cochons... dans l'espâââce
Posté le 16-12-2004 à 15:12:06  profilanswer
 

patachou a écrit :

Sinon tu fais ctrl+M pour avoir la fenetre en 100% sous eclipse, c tres pratique


 
Oh puree je connaissais pas, je continuais a double-cliquer sur le tab :D
 
Tant qu'on y est, t'aurais pas un truc pour avoir plus d'une ligne de tabs en haut ?

n°925091
patachou
Posté le 16-12-2004 à 15:33:00  profilanswer
 

Gonzoide a écrit :

Oh puree je connaissais pas, je continuais a double-cliquer sur le tab :D
 
Tant qu'on y est, t'aurais pas un truc pour avoir plus d'une ligne de tabs en haut ?


 
J'avoue que je l'ai trouvé par hasard ce racourci en me plantant  :D Des fois ca a du bon de se tromper...
Sinon je connais pas de "truc" pour mettre sur plus d'une ligne les tabs...

n°925308
Jubijub
Parce que je le VD bien
Posté le 16-12-2004 à 19:25:27  profilanswer
 

c pas une préférence ?
 
sinon je connaissais pas le CTRL+M


---------------
Jubi Photos : Flickr - 500px
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [java] génération automatique des "import" ?

 

Sujets relatifs
Rename automatiqueVotre avis sur java
Java ça pue, vive cobol \o/Plugins Java
Connexion automatique à un site Web[VBA Excel] [Résolu] Pb d'import de données txt dans excel avec VBA.
paramètres son dans JavaServlet - erreur sur l'import
SSII: Remise à niveau en Java pour mission??Applet Java : Redimensioner une image + upload vers FTP
Plus de sujets relatifs à : [java] génération automatique des "import" ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR