Page 1 of 1

[SOLVED] Hardcode JVM Path

Posted: 28 Sep 2020, 13:44
by hvhv19
Hi guys,

I am trying to put together a response.varfile to pass to my infrastructure team.
Can someone tell me how I can point OpenWebstart to use a specific JVM.
We need this to be our own provided one as it will have some certificates injected into the java keystore.
It is not clear to me what JVM Cache means as I have tried that property and it doesn't seem to do anything.

Many thanks,
Horia

Re: Hardcode JVM Path

Posted: 28 Sep 2020, 14:30
by Andreas Ehret
The information about the available JVMs is stored in a file called cache.json that can be found in the .cache/icedtea-web/jvm-cache/ folder where also the cached JVMs of your installation reside. You can use the configuration property "ows.jvm.manager.cache.dir" in your response.varfile to redirect to another jvm cache directory as described here.

Re: Hardcode JVM Path

Posted: 28 Sep 2020, 14:42
by Stephan Classen
Also it is possible to host your own JVM download server.
see: https://github.com/karakun/OpenWebStart ... oad-server

Re: Hardcode JVM Path

Posted: 02 Oct 2020, 08:41
by hvhv19
Hi guys,

Much appreciated your fast replies. I did create my own response file and it does install in the custom location I provide in it.
However ows.jvm.manager.cache.dir=C\:\\Users\\user_h\\java_jdks does not seem to work.
I am not sure what I am omitting or doing wrong, this is how the response file looks like:

# install4j response file for OpenWebStart 1.2.1
installationDate$Long=1599205944604
sys.adminRights$Boolean=true
sys.fileAssociation.extensions$StringArray="jnlp","jnlpx"
sys.fileAssociation.launchers$StringArray="313","313"
sys.installationDir=C\:\\Users\\user_h\\custom_openwebstart_location\\OpenWebStart
sys.languageId=en
userMode$Integer=1
ows.update.strategy.settings=NEVER
ows.update.strategy.launch=NEVER
ows.jvm.manager.updateStrategy=DO_NOTHING_ON_LOCAL_MATCH
ows.jvm.manager.cache.dir=C\:\\Users\\user_h\\java_jdks


The java_jdk folder just has jdk-15 which has been preloaded with the certificates we need.
All of it is done on Windows 10 VMs

Thanks again for any help/suggestions,
Horia

Re: Hardcode JVM Path

Posted: 02 Oct 2020, 08:51
by Stephan Classen
I suspect, the formatting of the path to the cache dir may be incorrect.

@Janak
Can you test this on Windows and see if the path is resolved correctly using the above syntax

Re: Hardcode JVM Path

Posted: 02 Oct 2020, 09:08
by hvhv19
Hi,

I tried this as well which does resolve if I just enter it in Windows Explorer:

ows.jvm.manager.cache.dir="C:\Users\user_h\java_jdks"

Is there anywhere I could see some log saying if it could find or not find the path?

Re: Hardcode JVM Path

Posted: 02 Oct 2020, 10:44
by hvhv19
It seems like no matter what path I try, even after I edit the response file after installation, just to test what path works, it still won't pick it up.

It instead still tries to download a jdk11 from azul.

Just double checking: in case it does pick up the cache.dir correctly: are the jvms going to show up in the JVM Manager from the start or will that only happen once I try opening a jnlp file?

Re: Hardcode JVM Path

Posted: 02 Oct 2020, 12:18
by hvhv19
Thank you guys for all the effort. I think I figured it out so on top of the path being incorrect there was another step missing.

I had to modify the cache.json file that is in the JVM Cache folder to point it manually to:

{
"runtimes": [
{
"version": "15",
"vendor": "Oracle Systems, Inc.",
"javaHome": "file:///C:/Users/user_h/java_jdks/jdk-15/",
"active": true,
"os": "WIN64",
"managed": true,
"lastUsage": "2020-10-02T11:15:01.753"
}
]
}

Now it indeed picks it up and things run as expected.

Re: Hardcode JVM Path

Posted: 02 Oct 2020, 16:05
by Stephan Classen
Greate to hear that it is working.

You should change your entry in the cache.json to read ' "managed": false '.
This will tell OWS that the JDK was not downloaded by the JVM Manager.
Main effect this flag has is that when a managed JVM is removed from the JVM Manager it is also physically deleted from the drive.
Unmanaged JVMs will not be deleted when removed from the list.