Retrieving the bytes of platform classes

Volker Simonis volker.simonis at gmail.com
Thu Oct 26 16:37:50 UTC 2017


>From within Java (i.e. for the current VM) you could simply do:

ClassLoader.getSystemResourceAsStream("java/io/InputStream.class")

Regards,
Volker


On Tue, Oct 24, 2017 at 3:47 AM, Sundararajan Athijegannathan
<sundararajan.athijegannathan at oracle.com> wrote:
> A simple nashorn sample to extract single .class using jrt file system
> provider:
>
> https://blogs.oracle.com/sundararajan/extracting-a-single-class-file-from-java9-platform-jimage-modules-file
>
> -Sundar
>
>
> On 23/10/17, 11:25 PM, Alan Bateman wrote:
>>
>> On 23/10/2017 18:48, Mark Raynsford wrote:
>>>
>>> :
>>>
>>> In the olden days, we'd probably have gone rummaging in rt.jar, but
>>> that was obviously a hack and wasn't future-proof. My tool is only
>>> designed to work with JDK 9 and up.
>>>
>>> Note that I'm *not* asking to get from loaded Class<?> instances to
>>> bytes: I'm analyzing classes statically and none of the analyzed
>>> classes will actually be loaded by any ClassLoader.
>>>
>> Have you looked at the jrt file system provider? Details in JEP 261 [1].
>>
>> -Alan
>>
>> [1] http://openjdk.java.net/jeps/261


More information about the jigsaw-dev mailing list