Opened 6 years ago

Closed 5 years ago

#1205 closed defect (no response)

I2P Windows installer asks for Java 5

Reported by: str4d Owned by:
Priority: major Milestone: 0.9.12
Component: installer Version: 0.9.11
Keywords: Cc:
Parent Tickets: Sensitive: no

Description

Reported by Rex on https://superuser.com/questions/717068/i2p-latest-installer-asks-for-java-5

So I'm trying to install I2P, which requires a JRE to run. I already have Java 6 and 7 JREs installed, yet the damn installer asks for, of all things, Java 5, and then very 'helpfully' pops open a browser window to the Java download page!! I snooped on its registry access using Sysinternals' Process Monitor, then cheated by creating a registry key for Java 5 at HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.5 with the same content as the key for 1.6, i.e. 2 strings for JavaHome and RuntimeLib.

I suspect someone got sloppy with their installer version checking code because I2P documentation clearly says it supports Java 6, and 5, which was launched a decade ago, isn't available on the Oracle Java download page anymore.

Anyone else face this problem and do you have a workaround that doesn't involve hunting for and installing JRE 1.5.0? I can't ask on the I2P forums because guess what, they're accessible only over the I2P network!

Subtickets

Attachments (1)

jre5.jpg (8.3 KB) - added by killyourtv 6 years ago.
jre5

Download all attachments as: .zip

Change History (11)

comment:1 Changed 6 years ago by str4d

Reporter's question is tagged "windows windows-8.1". My guess is that izpack 4.3.0 has problems with Windows 8.1, but then it was last updated in 2009.

comment:2 Changed 6 years ago by zzz

comment:3 in reply to:  2 Changed 6 years ago by str4d

Replying to zzz:

Possible clues:

https://github.com/jim618/multibit/issues/89

Good find zzz. My new theory is that Launch4j is the problem; it is what looks for the JRE on Windows and opens the Java download page if it can't find one. I think that is only a problem for 64-bit JREs.

comment:4 Changed 6 years ago by zzz

Yeah it doesn't sound like izpack. Izpack's min Java version is set in installer/install.xml; I tried changing it to 1.9 and running the installer, it popped up a window saying:

"The application that you are trying to install requires a 1.9 version or later of the Java platform. You are running a 1.7.0_51 version of the Java platform. Please upgrade to a newer version".

This was on Linux. It did not pop up anything in the browser. That sounds more like a Windows thing than either izpack or launch4j.

If we had a basic 8.1 problem we'd be getting a lot more complaints. Perhaps some 32/64 install problem on his machine?

comment:5 Changed 6 years ago by killyourtv

I'll try to reproduce this in Win 8 and Win8.1 later with various combinations of 32- and 64-bit JREs.

In my (limited) testing when Win 8.x was released everything worked fine. I think I tried a 32bit JRE on amd64 but I can't say for certain.

comment:6 Changed 6 years ago by str4d

Definitely a Launch4J problem. We only use it for Windows, and from the docs for their JRE version settings:

<jre>

Required element that groups JRE settings.

<path>, <minVersion>, <maxVersion>

The <path> property is used to specify the absolute or relative path (to the executable) of a bundled JRE, it does not rely on the current directory or <chdir>. Note that this path is not checked until the actual application execution. If you'd like the wrapper to search for a JRE (public or SDK private) use the <minVersion> property, you may also specify the <maxVersion> to prevent it from using higher Java versions. Launch4j will always use the highest version available (in the min/max range of course). If a Sun's JRE is not available or does not satisfy the search criteria, the search will be repeated on IBM runtimes. You can also combine these properties to change the startup process…

<path>

Run if bundled JRE and javaw.exe are present, otherwise stop with error.

<path> + <minVersion> [+ <maxVersion>]

Use bundled JRE first, if it cannot be located search for Java, if that fails display error message and open the Java download page.

<minVersion> [+ <maxVersion>]

Search for Java, if an appropriate version cannot be found display error message and open the Java download page.

Changed 6 years ago by killyourtv

Attachment: jre5.jpg added

jre5

comment:7 Changed 6 years ago by killyourtv

I cannot reproduce this. I have tried with

  • Windows 8.1 i386 - 32-bit JRE (naturally)
  • Windows 8.1 amd64 - 32-bit and 64-bit JREs

If I run the installer without a JRE installed it says I need java 1.5, then it opens the java.com site so I can download Java 7. It'd be nice if it said "1.5.0 or newer" but this isn't that big of a problem. It is, however, Launch4j doing that.

jre5

With the 32-bit or 64-bit JRE installed, everything works as expected.

If I change the keys in the registry to make the paths to Java point to invalid locations the installer complains that the JRE's location is invalid. It does not prompt me to install Java 5.

Unless the OP is willing to give more information about his system I think it may be hard to find out what was going on.

comment:8 Changed 6 years ago by rex

Original submitter from Superuser here. I updated to the latest build of JRE 7 and it now works. I'm using the 64 bit version of 1.7.0.51 on Windows 8.1.

comment:9 in reply to:  8 Changed 6 years ago by str4d

Status: newinfoneeded_new

Replying to rex:

Original submitter from Superuser here. I updated to the latest build of JRE 7 and it now works. I'm using the 64 bit version of 1.7.0.51 on Windows 8.1.

Thanks for this information. What version of JRE were you using when you had the problem? If we are unable to recreate the problem then I will close this ticket.

comment:10 Changed 5 years ago by zzz

Resolution: no response
Status: infoneeded_newclosed
Note: See TracTickets for help on using tickets.