You got fooled by the fact that there is a difference between loading the very initial main class at JVM bootstrap, and
loadingANY OTHER subsequent class. This is difference is clearly documented in chapters JLS 12.1 (initial class) and
JLS12.2 (other classes).
After correcting your example it works pretty well, see: https://gist.github.com/mkarg/88a89ae0dbffcfb7543e
-----Original Message-----
From: pgsql-jdbc-owner@postgresql.org [mailto:pgsql-jdbc-owner@postgresql.org] On Behalf Of Mark Rotteveel
Sent: Mittwoch, 17. Juni 2015 09:07
To: List
Subject: Re: [JDBC] Pre-processing during build
On Wed, 17 Jun 2015 00:02:40 +0300, Vladimir Sitnikov
<sitnikov.vladimir@gmail.com> wrote:
> 2015-06-16 22:30 GMT+03:00 Markus KARG <markus@headcrashing.eu>:
>> The answer is pretty simple: Try it out. :-)
>>
>> Just compile a JRE 8 class down to byte code level 6 and load it on
Java
>> level 7. That's what I proposed. Nothing else. It really bet will work
>> unless you try to INSTANTIATE JRE-only classes, but it should LOAD. And
>> nothing more we need.
>
> Markus, can you please be more explicit in your suggestion?
>
> I did try a simple "Hello, world" and it does not run in stock JDKs of
> MacOS: https://gist.github.com/vlsi/aeeb4a61d9c2b67ad213
> Even if you manage to make that fly, that would be built on sand.
Good example: it demonstrates at least that using reflection (eg
getDeclaredMethods; or in this case privateGetDeclaredMethods) will lead to
a NoClassDefFoundError.
Mark
--
Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc