icedTea-Web User Directory

609 views
Skip to first unread message

Bernd Eckenfels

unread,
Jun 13, 2018, 10:30:10 AM6/13/18
to ojdkbuild
The javaws.exe starter currently defines

-Ditw.userdata="C:/Users/USER/AppData/Local/ojdkbuild/java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64/webstart/"

Which leads to the fact that the cache directory and the config directory is not only version specific, but also rather hard to find. I would remove the product version and use "%LOCALAPPDATA%\<vendor>\webstart\" (i.e. "C:/Users/USER/AppData/Local/ojdkbuild/webstart/cache" instead. What do you think? (and modify it to skip .cache/icedtea-web/)

Besides the javaws.exe has a -d option to delete that directory. Can this be made a longer option to avoid potential people trying to "turn debugging on"?

Als should the search location for the deployment properties moved to webstaret\deployment.properties from jre\lib\deployment.properties so we can actually ship some?

If I manually enable the console it will show up (but the ITW console is ratehr bulky). When I use the "HIDE" option, is there a way to actually make it visible?

BTW: the build misses a few html files for javaws -about (especially the about, authors and license, but also news and changelog pages).

The help page is rather helpful to find the actual path, which shows that the current defaults are a bot strange:

  • c:\Program Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1\jre\lib\deployment.config - java-global deployment properties file. May be affected by deployment.jre.dir.
  • c:\Program Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1\jre\lib\security\cacerts - Contains various system java-wide stored certificates. Gesteuert durch deployment.system.security.cacerts
  • c:\Program Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1\jre\lib\security\jssecacerts - Contains various system java-wide stored certificates. Gesteuert durch deployment.system.security.jssecacerts
  • c:\Program Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1\jre\lib\security\trusted.certs - Contains various system java-wide stored certificates. Gesteuert durch deployment.system.security.trusted.certs
  • c:\Program Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1\jre\lib\security\trusted.clientcerts - Contains various system java-wide stored certificates. Gesteuert durch deployment.system.security.trusted.clientautcerts
  • c:\Program Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1\jre\lib\security\trusted.jssecerts - Contains various system java-wide stored certificates. Gesteuert durch deployment.system.security.trusted.jssecerts
  • C:\Users\USER\AppData\Local\Temp\Eckenfel\netx\locks - Location of netx locks. Gesteuert durch deployment.user.locksdir
  • C:\Users\USER\AppData\Local\Temp\Eckenfel\netx\locks\netx_running - Location of netx main lock. Gesteuert durch deployment.user.runningfile
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.cache\icedtea-web\cache - Contains cached runtime entries. Gesteuert durch deployment.user.cachedir
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.cache\icedtea-web\cache\recently_used - Additional information about items in cache
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.cache\icedtea-web\pcache - Contains saved application data. Gesteuert durch deployment.user.pcachedir
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.cache\icedtea-web\tmp - Contains temporary runtime files. Gesteuert durch deployment.user.tmp
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\.appletTrustSettings - File responsible for various actions on applets and apps based on their codebase based on users actions.
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\deployment.properties - Users main deployment properties file.
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\icons - Location where icons of javaws applications desktop/menu launchers icons are stored
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\log - contains file-log files (if enabled), itw-cplugin-date_time.log for native part of plugin, itw-javantx-date_time.log for everything else. Gesteuert durch deployment.user.logdir
  • file://C:\USER\Eckenfel\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\security\java.policy - Contains granted permissions for selected unsigned apps. Gesteuert durch deployment.user.security.policy
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\security\trusted.cacerts - Contains various users stored certificates. Gesteuert durch deployment.user.security.trusted.cacerts
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\security\trusted.certs - Contains various users stored certificates. Gesteuert durch deployment.user.security.trusted.certs
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\security\trusted.clientcerts - Contains various users stored certificates. Gesteuert durch deployment.user.security.trusted.clientauthcerts
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\security\trusted.jssecacerts - Contains various users stored certificates. Gesteuert durch deployment.user.security.trusted.jssecacerts
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\security\trusted.jssecerts - Contains various users stored certificates. Gesteuert durch deployment.user.security.trusted.jssecerts
  • C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.local\share\applications\javaws - Subdirectory in users menus space, for placing custom menu shortcuts.
  • \etc\.java\deployment\.appletTrustSettings - File responsible for various actions on applets and apps based on their codebase based on admins actions.
  • \etc\.java\deployment\deployment.config - Global deployment config file.
BTW when I configure .jnlp file hander in firefox (as it seems not to pick up the registry) it will download the file as a tempfile and then pass it to javaws.exe. Is there a way to actually pass the URL to it (as it might result in mixed domain warning)

Greetings
Bernd

Alex Kashchenko

unread,
Jun 14, 2018, 7:15:29 AM6/14/18
to Bernd Eckenfels, ojdkbuild
Hi,

On 06/13/2018 03:30 PM, Bernd Eckenfels wrote:
> The javaws.exe starter currently defines
>
> -Ditw.userdata="C:/Users/USER/AppData/Local/ojdkbuild/java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64/webstart/"
>
>
> Which leads to the fact that the cache directory and the config directory
> is not only version specific, but also rather hard to find. I would remove
> the product version and use "%LOCALAPPDATA%\<vendor>\webstart\" (i.e.
> "C:/Users/USER/AppData/Local/ojdkbuild/webstart/cache" instead. What do you
> think? (and modify it to skip .cache/icedtea-web/)

The version specific path for all IcedTea-Web files was used by design
there. One of the requirements for jdk-win installer is that all
temporary files must be removed on uninstall. Thus all of them are
placed under this versioned directory.

"Config purge on updade" may be inconvenient for long-term ITW config
files. The idea was that the webstart bundled with MSI installer is for
"casual users" who just want to run some webstart apps from browser and
expect them to work in a similar way they worked with Oracle webstart.
And "advanced users" can install standalone ITW that may be more
flexible for running JNLPs from command line and has the paths that
match linux version 1-to-1.

MSI installer support (to create standalone win installers with ITW
only) was added to ITW project. Unfortunately the windows launcher from
ojdkbuild (javaws.exe) was rejected by ITW people and they decided to
write their own one instead. Devkit from here (
https://github.com/akashche/itw_win_devkit ) can be used to build
standalone ITW MSI on windows, but I don't know its current state - it
is likely half-broken.


> Besides the javaws.exe has a -d option to delete that directory. Can this
> be made a longer option to avoid potential people trying to "turn debugging
> on"?


javaws.exe is not a command line binary (it is GUI one - doesn't have
stdin/out with console etc) so it doesn't have supported command line
flags. JAR file should be used directly for all command line use. EXE
launcher is not doing anything useful except launching java.exe passing
javaws.jar with required options to it. It uses java.exe spawning
additional process instead of launching JVM in the same process with
JNI_CreateJavaVM especially to not introduce any unwanted behaviour,
that may be different from java.exe + javaws.jar invocation.

This "-d" is an internal flag that is used only by uninstaller. Also the
files are being deleted with it are the config and cache files that are
deleted on uninstall/update anyway. So I'd rather leave it as is.


> Als should the search location for the deployment properties moved to
> webstaret\deployment.properties from jre\lib\deployment.properties so we
> can actually ship some?

This is probably a valid point, possibly it should search more places
for this file. I don't have a first-hand experience with
deployment.properties, can you describe a use-case how it may be used?



> If I manually enable the console it will show up (but the ITW console is
> ratehr bulky). When I use the "HIDE" option, is there a way to actually
> make it visible?

ITW console is not supported in bundled ITW, buttons to open it should
not appear on ITW forms that are displayed to user with normal JNLP
runs. IMO this console is bloated and buggy.


> BTW: the build misses a few html files for javaws -about (especially the
> about, authors and license, but also news and changelog pages).

These files are processed with ITW build system (that is a complete
joke) it is not possible to include them when building only Java code of
ITW directly.


> The help page is rather helpful to find the actual path, which shows that
> the current defaults are a bot strange:
>
>
> - *c:\Program
> Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1\jre\lib\deployment.config *-
> java-global deployment properties file. May be affected by
> deployment.jre.dir.
> - *c:\Program
> Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1\jre\lib\security\cacerts *-
> Contains various system java-wide stored certificates. Gesteuert durch
> *deployment.system.security.cacerts*
> - *c:\Program
> Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1\jre\lib\security\jssecacerts
> *- Contains various system java-wide stored certificates. Gesteuert
> durch *deployment.system.security.jssecacerts*
> - *c:\Program
> Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1\jre\lib\security\trusted.certs
> *- Contains various system java-wide stored certificates. Gesteuert
> durch *deployment.system.security.trusted.certs*
> - *c:\Program
> Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1\jre\lib\security\trusted.clientcerts
> *- Contains various system java-wide stored certificates. Gesteuert
> durch *deployment.system.security.trusted.clientautcerts*
> - *c:\Program
> Files\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1\jre\lib\security\trusted.jssecerts
> *- Contains various system java-wide stored certificates. Gesteuert
> durch *deployment.system.security.trusted.jssecerts*
> - *C:\Users\USER\AppData\Local\Temp\Eckenfel\netx\locks *- Location of
> netx locks. Gesteuert durch *deployment.user.locksdir*
> - *C:\Users\USER\AppData\Local\Temp\Eckenfel\netx\locks\netx_running *-
> Location of netx main lock. Gesteuert durch *deployment.user.runningfile*
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.cache\icedtea-web\cache
> *- Contains cached runtime entries. Gesteuert durch
> *deployment.user.cachedir*
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.cache\icedtea-web\cache\recently_used
> *- Additional information about items in cache
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.cache\icedtea-web\pcache
> *- Contains saved application data. Gesteuert durch
> *deployment.user.pcachedir*
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.cache\icedtea-web\tmp
> *- Contains temporary runtime files. Gesteuert durch
> *deployment.user.tmp*
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\.appletTrustSettings
> *- File responsible for various actions on applets and apps based on
> their codebase based on users actions.
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\deployment.properties
> *- Users main deployment properties file.
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\icons
> *- Location where icons of javaws applications desktop/menu launchers
> icons are stored
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\log
> *- contains file-log files (if enabled), itw-cplugin-date_time.log for
> native part of plugin, itw-javantx-date_time.log for everything else.
> Gesteuert durch *deployment.user.logdir*
> - *file://C:\USER\Eckenfel\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\security\java.policy
> *- Contains granted permissions for selected unsigned apps. Gesteuert
> durch *deployment.user.security.policy*
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\security\trusted.cacerts
> *- Contains various users stored certificates. Gesteuert durch
> *deployment.user.security.trusted.cacerts*
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\security\trusted.certs
> *- Contains various users stored certificates. Gesteuert durch
> *deployment.user.security.trusted.certs*
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\security\trusted.clientcerts
> *- Contains various users stored certificates. Gesteuert durch
> *deployment.user.security.trusted.clientauthcerts*
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\security\trusted.jssecacerts
> *- Contains various users stored certificates. Gesteuert durch
> *deployment.user.security.trusted.jssecacerts*
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.config\icedtea-web\security\trusted.jssecerts
> *- Contains various users stored certificates. Gesteuert durch
> *deployment.user.security.trusted.jssecerts*
> - *C:\Users\USER\AppData\Local\ojdkbuild\java-1.8.0-openjdk-1.8.0.171-1.b10.ojdkbuild.windows.x86_64\webstart\.local\share\applications\javaws
> *- Subdirectory in users menus space, for placing custom menu shortcuts.
> - *\etc\.java\deployment\.appletTrustSettings *- File responsible for
> various actions on applets and apps based on their codebase based on admins
> actions.
> - *\etc\.java\deployment\deployment.config *- Global deployment config
> file.
>
> BTW when I configure .jnlp file hander in firefox (as it seems not to pick
> up the registry) it will download the file as a tempfile and then pass it
> to javaws.exe. Is there a way to actually pass the URL to it (as it might
> result in mixed domain warning)

M, this part is directly related to launcher (not to ITW) and it should
work with Firefox. With local tests I found Firefox to have the best
integration (over chrome/ie) with launching custom files/urls. And it
picks up registry settings (added on installation) fine for me on both
Win7 and Win10.

Integration is done separately for JNLP files and jnlp:// URLS so the
behaviour for them may be slightly different. Can you describe your
setup (and problems) in more details? I use examples from here (
https://icedtea.classpath.org/wiki/IcedTea-Web-Tests#IcedTea-Web_webstart_.28javaws.29_test_applications
) for testing (though the jnlp:// examples that were there in the past
are not accessible any more).


> Greetings
> Bernd
>


--
-Alex

Bernd Eckenfels

unread,
Jun 26, 2018, 1:44:11 PM6/26/18
to ojdkbuild
Hello,

thanks for looking into all of this.

Am Donnerstag, 14. Juni 2018 13:15:29 UTC+2 schrieb Alex Kashchenko:

> BTW when I configure .jnlp file hander in firefox (as it seems not to pick
> up the registry) it will download the file as a tempfile and then pass it
> to javaws.exe. Is there a way to actually pass the URL to it (as it might
> result in mixed domain warning)

M, this part is directly related to launcher (not to ITW) and it should
work with Firefox. With local tests I found Firefox to have the best
integration (over chrome/ie) with launching custom files/urls. And it
picks up registry settings (added on installation) fine for me on both
Win7 and Win10.

Integration is done separately for JNLP files and jnlp:// URLS so the
behaviour for them may be slightly different. Can you describe your
setup (and problems) in more details? I use examples from here (
https://icedtea.classpath.org/wiki/IcedTea-Web-Tests#IcedTea-Web_webstart_.28javaws.29_test_applications
) for testing (though the jnlp:// examples that were there in the past
are not accessible any more).


I can no longer reproduce the problem. I suspected it had something to do with jnlp_auto_file file extension classes (or maybe UWP file associations which are stored differently) or conflicts with Oracle WebStart. But no, it works in all conditions currently, the application shows up as "open as" or is picked by Firefox as "default" (if handlers.jsnon is deleted aka freh profile).

BTW: while playing around with the problem I created a windows registry file to reset all the usual JNLP file and protocol locations, in case somebody needs that its in this blog post here: https://itblog.eckenfels.net/archives/520-Reset-Java-Web-Start-javaws,-jp2launcher,-JNLP-file-associations.html

Gruss
Bernd

Alex Kashchenko

unread,
Jun 29, 2018, 9:52:01 AM6/29/18
to Bernd Eckenfels, ojdkbuild
Hi,
Thanks for confirming!

I noticed before a slightly different behaviour between windows
versions. But generally current setup seems to work for me in all of
Firefox, Chrome and IE, with Firefox having the most convenient dialogues.

Also distinction between jnlp:// links and http:// links to JNLP files
may be confusing.


> BTW: while playing around with the problem I created a windows registry
> file to reset all the usual JNLP file and protocol locations, in case
> somebody needs that its in this blog post here:
> https://itblog.eckenfels.net/archives/520-Reset-Java-Web-Start-javaws,-jp2launcher,-JNLP-file-associations.html

Just for the record, registry changes that are used in ojdkbuild
installer are here (in WiX XML format) -
https://github.com/ojdkbuild/deps_icedtea-web/blob/master/resources/installer.xsl

They are effectively a subset of Oracle Java installer changes and
should override the existing settings on install (or MSI "repare")
action (there may be nuances about x86_64 and x86 (re-)installations
that go to different registry branches).

>
> Gruss
> Bernd
>


--
-Alex

Bernd Eckenfels

unread,
Aug 9, 2018, 12:59:07 PM8/9/18
to ojdkbuild
Hello,

I have been able to reproduce a javaws file association problem: I was updating ojdkbuilt from u171 to u181 and forgot a web start application running in the background. This caused the installer to complain that it has to reboot the machine (which I did). Afterwards the software had been installed (and the old version removed) however in the JNLPFile and jnlp(s) class entries the shell command was not updated.

Looks like the installer did not finish after the reboot? Maybe overwriting the registry should be done regardless (or earlier). Sorry cant give more specific hints as the installer-behavior is not very clear to me.

Anyway, it will result in Firefox (when configured to use Standard JNLPFile application) to print a message "Temp/bla.jnlp Application not found" ... which is rather hard to debug for casual users.

Gruss
Bernd


Alex Kashchenko

unread,
Aug 9, 2018, 1:27:45 PM8/9/18
to Bernd Eckenfels, ojdkbuild
Hi,
Thanks for the details!

On uninstall MSI tries to cleanup all temporary directories, and it
cannot succeed when ITW is running with some cache files open. It seems
that in this case a reboot (standard windows installer behaviour)
doesn't help and the app is "half-installed" after the reboot.

I am not sure how to proceed with this (install/uninstall actions are a
bit hard to debug). Would you mind checking, whether doing "Repair" on
the new MSI (or in the list of "Program and Features") can solve the
file associations for ITW in your environment?

>
> Gruss
> Bernd
>
>


--
-Alex

Bernd Eckenfels

unread,
Aug 9, 2018, 4:40:26 PM8/9/18
to Alex Kashchenko, ojdkbuild
Yes repair fixed it.

 

Von: Alex Kashchenko <akas...@redhat.com>
Gesendet: Donnerstag, August 9, 2018 7:27 PM
An: Bernd Eckenfels; ojdkbuild
Betreff: Re: icedTea-Web User Directory
 

Alex Kashchenko

unread,
Aug 28, 2018, 6:09:41 AM8/28/18
to Bernd Eckenfels, ojdkbuild
Hi,

On 08/09/2018 09:40 PM, Bernd Eckenfels wrote:
> Yes repair fixed it.

Thanks for confirming the workaround!

I filed the issue on github about this just for the record -
https://github.com/ojdkbuild/ojdkbuild/issues/42
--
-Alex
Reply all
Reply to author
Forward
0 new messages