Announcement

Collapse
No announcement yet.

Packages durchsuchen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Packages durchsuchen

    Hallo
    Ich muss für die Uni ein Entwicklungsunterstützendes Tool entwerfen. Dabei habe grade folgendes Problem:
    Ich brauche zur Laufzeit Informationen über sämtliche Klassen, die sich in java.lang befinden. Wenn ich die Klassen habe, weiß ich, wie ich mit den Reflect Package an Informationen aus den Klassen komme, aber wie kann ich das Package java.lang durchsuchen?
    Ich hatte gedacht, dass ich mit einem Objekt von java.lang.Package auch an dessen enthaltenen Klassen und Packages komme, aber dafür bietet mir diese Klasse überhaupt keine Möglichkeiten.
    Kennt hier vielleicht jemand einen Weg, wie ich das machen kann? Im Notfall auch auf Dateisystemebene. Aber da weiß ich auch nicht, wie ich an Informationen aus den Jars komme.
    Vielen Dank im Voraus!

  • #2
    jar -tf xy.jar listet den Inhalt eines Jars auf.
    grep durchsucht den stdin auf Textmuster.
    <b> jar -tf $JAVA_HOME/jre/lib/rt.jar | grep "^java/lang/" </b>
    grep ist frei verfügbar in den unixtools, die es nativ als win32-binaries gibt, gab es früher aber auch beim Borland C++ Compiler (und vielleicht noch heute).

    Auf Win %JAVA_HOME% statt $JAVA_HOME verwenden

    Comment


    • #3
      Hallo,

      wenn es mehr oder weniger Java-intern sein soll:

      try{
      JarFile jar = new JarFile( "<pfad>/rt.jar");
      Enumeration enumJ = jar.entries();
      while( enumJ.hasMoreElements() ){
      JarEntry s = (JarEntry)enumJ.nextElement();
      if( s.getName().startsWith( "java/lang" ) )
      System.out.println( s.getName() );
      }
      }
      catch( IOException ex ){
      ex.printStackTrace();
      }

      Kann dann natürlich noch verfeinert werden........

      Grüsse
      Carste

      Comment

      Working...
      X