0

I have a very old application (published in 2001) I am trying to get working in Windows 7/8/10. There is a setup.exe part of it that is using Java in some capacity, and not working correctly. I suspect it is using java because I decompiled the JAR file packaged with the application and there are references to several setup steps within the .java files (along with a file named setup.java). There is also a jre folder published with the application as well, running the following (dated) version:

F:\jre\bin>java -version
java version "1.3.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0_01)
Java HotSpot(TM) Client VM (build 1.3.0_01, mixed mode)

At first I suspected the application was using the systems environmental variables to use the currently installed version of JAVA, but I ruled that out by completely purging JAVA from the system and retesting - same results.

I next tried to simply update the folder to the latest version. As expected however, there were calls being made that were no longer supported (error message was referencing _JVM_IsVMGeneratedMethodl).

At this point I am running out of options. I could always run this application in a VM (and it works fine), but I would prefer to somehow package it in a nice streamlined way for easy distribution and install. Is there anything I can do? I was thinking something along the lines of application virtualization but still reading up on it.

crims0n
  • 81
  • 6

2 Answers2

2

It's hard to tell without "being there", but I'm guessing that the old (1.3) JVM just isn't compatible with the more modern versions of Windows.

Your best bet is probably running it against whatever version of Windows the app was originally developed on, in a VM.

If you have / can get the complete source code, you could try recompiling it with the version of Java supported on your current system. But it's probably a long-shot.

GreyBeardedGeek
  • 29,460
  • 2
  • 47
  • 67
1

If it is containing a JRE folder, then you could skip the installer and add some batch file to launch that .jar with the specific JRE via a command of this form:

java -jar pathToYourJAR

btw, you could also consider options to convert to executable, some older are mentioned here: How can I convert my Java program to an .exe file? some of them may allow you to select which JRE to bundle/use

Community
  • 1
  • 1
George Birbilis
  • 2,782
  • 2
  • 33
  • 35
  • 1
    if the installer was doing other stuff to the system, you can see what it's doing (probably just installing shortcuts to start menu etc.) by using Process Monitor (https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx) in a VM so that you can reproduce such actions (say if it is putting something in the registry there is command in Windows that can do the same, or can export a .reg file from a registry subtree and open it using start xx.reg command) – George Birbilis Nov 10 '15 at 01:14