Retourner aux forums || Retourner au forum Programmation.java

Programmation.java : JRE allégés ?

Posté par cho7 (page perso, ) le 03 août 2006
0
Bonjour,

Y a t il un moyen de trouver toutes les classes requises pour faire tourner un programme java ? Le but est d'alléger JRE et de l'embarquer avec l'application.

J'ai pensé a un script parsant toutes les lignes d'import des sources de l'appli, puis remontant ensuite dans les sources du jre, mais ca me parait fastidieux... (d'autant que certaines classes ne sont pas forcément mis en import, notamment si on les utilises avec leur fullpath dans le code)

Je suis preneur de toute idée :)

Merci.

--
le python, c'est bon
> Lire le message (7 commentaires, moyenne: 1,9).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

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

classloader

Posté par gc (page perso, ) le 03/08/2006 à 12:33. (lien). Évalué à 1.

implémente ton classloader et trace les classes loadées.

  • [^]Re: classloader

    Posté par cho7 (page perso, ) le 03/08/2006 à 12:59. (lien). Évalué à 2.

    Admettons, mais comment ensuite faire pour remplacer le classloader par défaut dès qu'on rentre dans la méthode main ?

    Existe-il une méthode genre setClassLoader() ? :-/

    Merci pour l'idée en tout cas, je n'y aurai pas pensé...

    --
    le python, c'est bon

jvmpi

Posté par Antoine Reilles (Jabber id, page perso, ) le 03/08/2006 à 13:17. (lien). Évalué à 1.

C'est une bonne occasion d'apprendre à utiliser jvmpi (Java Virtual Machine Profiler Interface). C'est fait pour ça, et t'évitera d'écrire un classloader particulier

http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/jvmpi.html

et l'évenement qui t'interesse sera surement
http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/jvmpi.html#c(...)

Et bien sur dans les exemples de code, il y a exactement ce que tu cherche: un traceur d'utilisation des classes
http://java.sun.com/j2se/1.4.2/docs/guide/jvmpi/jvmpi.html#e(...)

  • [^]Re: jvmpi

    Posté par cho7 (page perso, ) le 03/08/2006 à 13:24. (lien). Évalué à 2.

    C'est fait pour ça, et t'évitera d'écrire un classloader particulier

    Je pige pas grand chose à ce truc de jvmpi, dans l'exemple ya un vague fichier cc à compiler (j'ai pas de compilo sous la main), et c'est laid ce qu'il y a dedans.

    C'est pas plus simple de faire un ptit ClassLoader ?

    j'voyais un truc du genre :

    public class MonClassLoader extends ClassLoader{

    protected synchronized Class loadClass(String arg0, boolean arg1) throws ClassNotFoundException {
    System.out.println("Chargement de la classe : " + arg0);
    return super.loadClass(arg0, arg1);
    }

    }


    Mais bon, il faudrait que je remplace le ClassLoader par défaut avec celui là...

    --
    le python, c'est bon
    • [^]Re: jvmpi

      Posté par Antoine Reilles (Jabber id, page perso, ) le 03/08/2006 à 14:08. (lien). Évalué à 2.

      je ne vois pas ce qu'il y a de dufficile à faire
      gcc -c -I/mes/include/java/include myprofiler.cc -o myprofiler.so

      puis, avec un LD_LIBRARY_PATH correct,
      java -Xrunmyprofiler MonAppli

-verbose

Posté par pmoret (page perso, ) le 03/08/2006 à 13:56. (lien). Évalué à 3.

il me semble qu'il y a plus simple: il suffit d'utiliser l'argument "-verbose" de la commande java pour avoir la liste des classe chargées...

--
Linux ? Y'a moins bien, mais c'est plus cher...
  • [^]Re: -verbose

    Posté par cho7 (page perso, ) le 03/08/2006 à 14:04. (lien). Évalué à 2.

    Excellent, merci :)

    --
    le python, c'est bon

Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.java