Re: get a list of classes at runtime

Posted by =?win... on 17. May 2015

On 5/13/2015 11:23 AM, Eric Sosman wrote:




On 5/13/2015 10:14 AM, Philipp Kraus wrote:




On 2015-05-13 14:06:53 +0000, Eric Sosman said:




On 5/13/2015 8:47 AM, Philipp Kraus wrote:
AFAIK, the JVM has no record of potentially loadable classes that
have not been loaded (there are probably some special-case exceptions
like String and Class and Throwable, but they'll all have been loaded
well before your code runs). If I'm right, it means the only way you
can find the not-yet-loaded classes is to rummage through the JAR's (or
other sources) for yourself. You presumably know where to find your
own JAR's and things; I believe all "base classes" reside in rt.jar.
I don't know of a convenient way to find "the" rt.jar that your JVM
happens to be using; the best I can think of is to read the java.home
System property and search from there. (Or from sun.boot.class.path,
but I'm not certain that's a property all JVM's will define.)



 Anyhow: Once you've found the JAR's, you'll read their directories,


do a little reformatting, and filter as you please.




I think so, but how do IDEs like IntelliJ or Eclipse this call? If I
write into the code editor
something a dialog is show, which lists all possibility classes.
So imho I need to run over the Jar, create an index of all class files
and use a pattern structure to
match the names.




 That's what I would do.  Note that a JAR will have directory entries


for all its classes, including nested classes, private classes, and
package-private classes. You can filter out the nested classes by their
funny-looking names, but if you also want to filter based on access I
can think of only two ways:



 - Read the class file (the format is described in the JVM spec).



Or reuse that somebody else has read the class file format spec.



Aka using a byte code manipulation library.



Like BCEL or ASM.




 - Load the class (use the three-argument form of Class.forName()
if you don't want to initialize it) and use getModifiers().



Arne


08. Jun 2015: PEDOFILOMOSESSUALE SODOMIZZANTE BAMBINI: PAOLO BARRAI DI WMO E BSI ITALIA SRL (SOCIETA' MALAVITOSE, RICICLA CASH MAFIOSO E POLITI-CRIMINALE)! STALKA A MORTE CHI LO FOTOGRAFA E SE "1 INSISTE" IL MANDANTE DI OMICIDI PAOLO BARRAI FA "SUICIDARE" DAVVERO! by CHE S...

08. Jun 2015: Re: Recommendation for a good Android programming book? by e d p...

08. Jun 2015: Re: Use URL for HTTPS request using Proxy by Silvi...

07. Jun 2015: Re: Use URL for HTTPS request using Proxy by Silvi...

07. Jun 2015: Re: Use URL for HTTPS request using Proxy by Arne ...

06. Jun 2015: Re: Recommendation for a good Android programming book? by Arne ...

06. Jun 2015: Re: Recommendation for a good Android programming book? by Arne ...

06. Jun 2015: Re: Use URL for HTTPS request using Proxy by Arne ...

06. Jun 2015: Broadcast packet received on MulticastSocket? by Knute...

05. Jun 2015: Re: Recommendation for a good Android programming book? by Marti...

05. Jun 2015: Re: Recommendation for a good Android programming book? by Marti...

05. Jun 2015: Re: Recommendation for a good Android programming book? by Eric ...

05. Jun 2015: Re: Use URL for HTTPS request using Proxy by Silvi...

05. Jun 2015: Re: Recommendation for a good Android programming book? by Eric ...

05. Jun 2015: Re: Recommendation for a good Android programming book? by e d p...

04. Jun 2015: Re: Recommendation for a good Android programming book? by Marti...

03. Jun 2015: Re: best and worst sorting algorithm for 1 to 10, 000 and then 10, 000 + elements by Arne ...

03. Jun 2015: Re: Use URL for HTTPS request using Proxy by Arne ...

03. Jun 2015: Re: How to programatically limit the number of threads in a java by Arne ...

03. Jun 2015: Re: How to programatically limit the number of threads in a java by Arne ...

03. Jun 2015: Re: how does a marker interface give specific instruction to jvm(java internals) by Arne ...

03. Jun 2015: Re: how does a marker interface give specific instruction to jvm(java internals) by Arne ...

03. Jun 2015: Re: Recommendation for a good Android programming book? by Arne ...

03. Jun 2015: Re: Wiring: A topic underrepresented in teaching? by Arne ...

03. Jun 2015: Re: Why do we need to "@Override Object clone" if all classes are subclasses of Object, why can not directly involke the functin? by Arne ...

02. Jun 2015: Re: Design pattern used to mask account number in an ATM or POS transaction by Arne ...

02. Jun 2015: Design pattern used to mask account number in an ATM or POS transaction by Ajay ...

01. Jun 2015: Re: Wiring: A topic underrepresented in teaching? by Silvi...

01. Jun 2015: Wiring: A topic underrepresented in teaching? by ram a...

01. Jun 2015: Re: Wiring: A topic underrepresented in teaching? by Eric ...

30. May 2015: I 2 BASTARDI LAVA CASH MAFIOSO DAVIDE SERRA DI ALGEBRIS E PAOLO BARRAI (AVANZO DI GALERA: 3 VOLTE IN CARCERE IN VITA SUA) FAN STALKING ASSASSINO A GENIO BORSISTICO ED EROE CIVILE MICHELE NISTA, SU ORDINE DI NAZIMAFIOSO PEDOFILO SILVIO BERLUSCONI E.. by CHE S...

29. May 2015: Re: Why do we need to "@Override Object clone" if all classes are subclasses of Object, why can not directly involke the functin? by Eric ...

28. May 2015: Re: Why do we need to "@Override Object clone" if all classes are subclasses of Object, why can not directly involke the functin? by HU Ti...

28. May 2015: Re: Why do we need to "@Override Object clone" if all classes are subclasses of Object, why can not directly involke the functin? by HU Ti...

28. May 2015: Re: Why do we need to "@Override Object clone" if all classes are subclasses of Object, why can not directly involke the functin? by Arne ...

28. May 2015: Why do we need to "@Override Object clone" if all classes are subclasses of Object, why can not directly involke the functin? by pigeo...

26. May 2015: Re: Recommendation for a good Android programming book? by Marti...

26. May 2015: Re: Recommendation for a good Android programming book? by Marti...

26. May 2015: Re: Java DatePicker popup calendar by Nigel...

26. May 2015: Re: Recommendation for a good Android programming book? by Joerg...

26. May 2015: Re: Recommendation for a good Android programming book? by Marti...

26. May 2015: Re: Java DatePicker popup calendar by e d p...

26. May 2015: Re: Recommendation for a good Android programming book? by Knute...

25. May 2015: Re: Recommendation for a good Android programming book? by Knute...

24. May 2015: Re: How to read the Java tutorial offline? by David...

23. May 2015: SQLite database by Ram V...

23. May 2015: Java DatePicker popup calendar by Danie...

23. May 2015: Human Rights and Justice in Islam by bv4bv...

22. May 2015: Re: Can we convert a Java ResultSet/SqlRowSet from Database query directly to JSON array without Mapping it to a List<Type>? by Arne ...

22. May 2015: Re: Recommendation for a good Android programming book? by e d p...

22. May 2015: Can we convert a Java ResultSet/SqlRowSet from Database query directly to JSON array without Mapping it to a List<Type>? by kaush...

21. May 2015: Re: Recommendation for a good Android programming book? by ram a...

21. May 2015: Re: Recommendation for a good Android programming book? by Arne ...

20. May 2015: Java and C# and Threadpool by Ramin...

20. May 2015: Re: JScrollPane not scrolling smoothly on fast computer by Jim H...

20. May 2015: Recommendation for a good Android programming book? by Knute...

20. May 2015: Re: JScrollPane not scrolling smoothly on fast computer by Knute...

18. May 2015: Re: Main Loop porblm by Silvi...

18. May 2015: Re: Main Loop porblm by Eric ...

18. May 2015: Re: Main Loop porblm by Micha...

18. May 2015: Main Loop porblm by Micha...

18. May 2015: Re: Puzzler: Fun with Streams. by scatt...

18. May 2015: Re: Puzzler: Fun with Streams. by scatt...

17. May 2015: Re: get a list of classes at runtime by Arne ...

17. May 2015: Re: get a list of classes at runtime by Arne ...

16. May 2015: C*C*C: CIUCCIA CAZZI DI CAVALLO PAOLO BARRAI DI WMO E BSI ITALIA SRL, UNA VOLTA CACCIATO (E FATTO CONDANNARE A GALERA) DA CITIBANK, PRIMA DI SPENNARE POLLI VIA WEB, FECE FILM PEDOPORNOMOSESSUALI! E CON CAVALLI! CIUCCIANDO E PRENDENDO FALLI EQUINI E.. by CARME...

15. May 2015: Need Oracle DBA Resumes for the position in Chicago,IL by srini...

14. May 2015: About Java... by Ramin...

14. May 2015: Re: JNI Wrapper for Delphi and FreePascal version 2.82 is here.. by Ramin...

14. May 2015: JNI Wrapper for Delphi and FreePascal version 2.82 is here.. by Ramin...

14. May 2015: Re: [Javascript] Uncaught ReferenceError: Invalid left-hand side in assignment by ram a...

14. May 2015: Re: how does a marker interface give specific instruction to jvm(java internals) by Rober...

13. May 2015: Re: how does a marker interface give specific instruction to jvm(java internals) by Jeff ...

13. May 2015: Re: get a list of classes at runtime by Marti...

13. May 2015: Re: how does a marker interface give specific instruction to jvm(java internals) by Jeff ...

13. May 2015: Re: get a list of classes at runtime by Joshu...

13. May 2015: Re: [Javascript] Uncaught ReferenceError: Invalid left-hand side in assignment by Joshu...

13. May 2015: [Javascript] Uncaught ReferenceError: Invalid left-hand side in assignment by garlo...

13. May 2015: [Javascript] How do I find out what this bug means and how to fix it? Uncaught ReferenceError: Invalid left-hand side in assignment by garlo...

13. May 2015: Re: get a list of classes at runtime by j4n b...

13. May 2015: Re: get a list of classes at runtime by Joerg...

13. May 2015: Re: get a list of classes at runtime by Phili...

13. May 2015: Re: get a list of classes at runtime by Eric ...

13. May 2015: Re: Puzzler: Fun with Streams. by Danie...

13. May 2015: Re: get a list of classes at runtime by Eric ...

13. May 2015: Re: get a list of classes at runtime by Eric ...

13. May 2015: Re: How to programatically limit the number of threads in a java by Joerg...

13. May 2015: Re: get a list of classes at runtime by e d p...

13. May 2015: Re: Puzzler: Fun with Streams. by Jeff ...