C
Chris Kelly
I need to modify someone else's JNLP app which is downloaded from
their website, but I can't ask them to make the changes I need.
Instead, I need to somehow get my code into their app. For instance, I
have the source code of their main class and I'd like to modify their
source and then have my modified version be used instead of the one
that's in their app. I'm using JRE 1.6.3 on Windows, and I have
complete control over that setup.
So far I've tried downloading all their jars, putting them in one big
jar, and then self-signing the new jar. Although less than optimal,
that would be one way to inject my code. That doesn't seem to have
worked for an unknown reason.
However, is there another way to do this that would be easier to
update? For instance, one complicated possibility would be to use a
proxy server to change the JNLP file as it's downloaded to include a
local jar containing a new version of their main class. If the user
has to click an extra dialog that's OK, but it doesn't seem like the
latest version of the JRE has a version of JNLP that allows jars
signed by different parties.
I've also tried to use an extension jar containing a class I modified,
resulting in a NoClassDefFoundError for a class used by the class I
modified.
A possibility I haven't tried yet involves creating a custom version
of javaw.exe that would pass in my own command line arguments, or
using JDPA. If there are easier/better ways please let me know.
their website, but I can't ask them to make the changes I need.
Instead, I need to somehow get my code into their app. For instance, I
have the source code of their main class and I'd like to modify their
source and then have my modified version be used instead of the one
that's in their app. I'm using JRE 1.6.3 on Windows, and I have
complete control over that setup.
So far I've tried downloading all their jars, putting them in one big
jar, and then self-signing the new jar. Although less than optimal,
that would be one way to inject my code. That doesn't seem to have
worked for an unknown reason.
However, is there another way to do this that would be easier to
update? For instance, one complicated possibility would be to use a
proxy server to change the JNLP file as it's downloaded to include a
local jar containing a new version of their main class. If the user
has to click an extra dialog that's OK, but it doesn't seem like the
latest version of the JRE has a version of JNLP that allows jars
signed by different parties.
I've also tried to use an extension jar containing a class I modified,
resulting in a NoClassDefFoundError for a class used by the class I
modified.
A possibility I haven't tried yet involves creating a custom version
of javaw.exe that would pass in my own command line arguments, or
using JDPA. If there are easier/better ways please let me know.