changeset 1510:3a998e74a0f9

With hope to backport windows desktop support and portable launchers from 1.8, adapted makefiles to be like 1.8 * Makefile: backported all targets and variables except rust ones and javaws.jar one from 1.8 * configure.ac: declared dummy ENABLE_SHELL_LAUNCHERS, as always yes and ENABLE_NATIVE_LAUNCHERS, as always no * launcher/launchers.sh.in: renamed from launcher/launchers.in
author Jiri Vanek <jvanek@redhat.com>
date Wed, 09 Jan 2019 17:41:55 +0100
parents fcb841380712
children 1b6706eb48a3
files ChangeLog Makefile.am configure.ac launcher/launchers.in launcher/launchers.sh.in
diffstat 5 files changed, 333 insertions(+), 251 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue Dec 18 11:22:16 2018 +0100
+++ b/ChangeLog	Wed Jan 09 17:41:55 2019 +0100
@@ -1,3 +1,10 @@
+2019-01-09  Jiri Vanek <jvanek@redhat.com>
+
+	With hope to backport windows desktop support and portable launchers from 1.8, adapted makefiles to be like 1.8 
+	* Makefile: backported all targets and variables except rust ones and javaws.jar one from 1.8
+	* configure.ac: declared dummy ENABLE_SHELL_LAUNCHERS, as always yes and ENABLE_NATIVE_LAUNCHERS, as always no
+	* launcher/launchers.sh.in: renamed from launcher/launchers.in
+
 2018-12-10  Jiri Vanek <jvanek@redhat.com>
             jtesdall <jtesdall@mapcon.com>
 
--- a/Makefile.am	Tue Dec 18 11:22:16 2018 +0100
+++ b/Makefile.am	Wed Jan 09 17:41:55 2019 +0100
@@ -29,6 +29,31 @@
 	WIN_LAUNCHERS=
 endif
 
+if ENABLE_SHELL_LAUNCHERS
+	SHELL_LUNCHERS=$(WIN_LAUNCHERS) launcher.build/$(javaws).sh launcher.build/$(itweb_settings).sh launcher.build/$(policyeditor).sh
+else
+	SHELL_LUNCHERS=
+endif
+
+
+if ENABLE_NATIVE_LAUNCHERS
+	NATIVE_LUNCHERS=launcher.build/$(javaws) launcher.build/$(itweb_settings) launcher.build/$(policyeditor)
+	DESKTOP_SUFFIX=
+else
+	NATIVE_LUNCHERS=
+	DESKTOP_SUFFIX=.sh
+endif
+
+# javaws is program name, JAVAWS is used executable name.
+# ITW 1.7 always do javaws and javaws.sh
+JAVAWS=$(javaws)$(DESKTOP_SUFFIX)
+ITWEB_SETTINGS=$(itweb_settings)$(DESKTOP_SUFFIX)
+POLICYEDITOR=$(policyeditor)$(DESKTOP_SUFFIX)
+
+LAUNCHERS=$(NATIVE_LUNCHERS) $(SHELL_LUNCHERS)
+DESKTOP_FILES=javaws.desktop itweb-settings.desktop policyeditor.desktop
+DESKTOP_IN_FILES=javaws.desktop.in itweb-settings.desktop.in policyeditor.desktop.in
+
 export WIN_INSTALLER_DIR = $(TOP_BUILD_DIR)/win-installer.build
 export WIN_INSTALLER_SRC_DIR = $(TOP_SRC_DIR)/win-installer
 export NETX_DIR = $(TOP_BUILD_DIR)/netx.build
@@ -40,6 +65,7 @@
 
 export WIN_ALL_DEPS=$(DESTDIR)$(prefix)/win-deps-all
 export WIN_RUN_DEPS=$(DESTDIR)$(prefix)/win-deps-runtime
+export LINUX_BIN_DIST_DEPS=$(DESTDIR)$(prefix)/linux-deps-runtime
 
 export REPORT_STYLES_DIRNAME=report-styles
 
@@ -137,6 +163,8 @@
   PLUGIN_JAR=$(datadir)/$(PACKAGE_NAME)/plugin.jar
   JSOBJECT_JAR=$(datadir)/$(PACKAGE_NAME)/jsobject.jar
 endif
+  NETX_JAR=$(datadir)/$(PACKAGE_NAME)/netx.jar
+  SPLASH_PNG=$(datadir)/$(PACKAGE_NAME)/javaws_splash.png
 
 # Conditional defintions
 if HAVE_TAGSOUP
@@ -159,7 +187,7 @@
 #    IllegalAccessException
 #  - we want full privileges
 #
-export UNIFIED_CLASSPATH_SEGMENTS=$(datadir)/$(PACKAGE_NAME)/netx.jar $(PLUGIN_JAR) $(JSOBJECT_JAR) $(RHINO_JAR) $(TAGSOUP_JAR)
+export UNIFIED_CLASSPATH_SEGMENTS=$(NETX_JAR) $(PLUGIN_JAR) $(JSOBJECT_JAR) $(RHINO_JAR) $(TAGSOUP_JAR)
 export UNIFIED_JACOCO_CLASSPATH_SEGMENTS=$(UNIFIED_CLASSPATH_SEGMENTS) $(JACOCO_CLASSPATH)
 export UNIFIED_CLASSPATH=$(call joinsegments, $(UNIFIED_CLASSPATH_SEGMENTS))
 export UNIFIED_JACOCO_CLASSPATH=$(call joinsegments, $(UNIFIED_JACOCO_CLASSPATH_SEGMENTS))
@@ -260,12 +288,12 @@
 
 export PLUGIN_VERSION = IcedTea-Web $(FULL_VERSION)
 
-export EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png javaws.desktop.in policyeditor.desktop.in $(top_srcdir)/completion \
- itweb-settings.desktop.in launcher $(top_srcdir)/tests html-gen.sh NEW_LINE_IFS $(top_srcdir)/metadata.in $(top_srcdir)/win-installer
+export EXTRA_DIST = $(top_srcdir)/netx $(top_srcdir)/plugin javaws.png $(DESKTOP_IN_FILES) $(top_srcdir)/completion \
+ launcher $(top_srcdir)/tests html-gen.sh NEW_LINE_IFS $(top_srcdir)/metadata.in $(top_srcdir)/win-installer
 
 # reproducers `D`shortcuts
 export DTEST_SERVER=-Dtest.server.dir=$(REPRODUCERS_TESTS_SERVER_DEPLOYDIR)
-export DJAVAWS_BUILD=-Djavaws.build.bin=$(DESTDIR)$(bindir)/$(javaws)
+export DJAVAWS_BUILD=-Djavaws.build.bin=$(DESTDIR)$(bindir)/$(JAVAWS)
 export DBROWSERS=-Dused.browsers=$(FIREFOX):$(CHROMIUM):$(CHROME):$(OPERA):$(MIDORI):$(EPIPHANY)
 export REPRODUCERS_DPARAMETERS= $(DTEST_SERVER) $(DJAVAWS_BUILD) $(DBROWSERS) $(BROWSER_TESTS_MODIFICATION)
 # end of `D`shortcuts
@@ -287,22 +315,23 @@
 # make-time from configure-time
 edit_launcher_script = sed \
   -e "s|[@]LAUNCHER_BOOTCLASSPATH[@]|$(LAUNCHER_BOOTCLASSPATH)|g" \
-  -e "s|[@]JAVAWS_SPLASH_LOCATION[@]|$(datadir)/$(PACKAGE_NAME)/javaws_splash.png|g" \
+  -e "s|[@]JAVAWS_SPLASH_LOCATION[@]|$(SPLASH_PNG)|g" \
   -e "s|[@]JAVA[@]|$(JAVA)|g" \
   -e "s|[@]JRE[@]|$(SYSTEM_JRE_DIR)|g" \
   -e "s|[@]MAIN_CLASS[@]|$${MAIN_CLASS}|g" \
   -e "s|[@]BIN_LOCATION[@]|$${BIN_LOCATION}|g" \
-  -e "s|[@]NETX_JAR[@]|$(datadir)/$(PACKAGE_NAME)/netx.jar|g" \
+  -e "s|[@]NETX_JAR[@]|$(NETX_JAR)|g" \
   -e "s|[@]PLUGIN_JAR[@]|$(PLUGIN_JAR)|g" \
   -e "s|[@]JSOBJECT_JAR[@]|$(JSOBJECT_JAR)|g" \
+  -e "s|[@]TAGSOUP_JAR[@]|$(TAGSOUP_JAR)|g" \
+  -e "s|[@]RHINO_JAR[@]|$(RHINO_JAR)|g" \
   -e "s|[@]PROGRAM_NAME[@]|$${PROGRAM_NAME}|g"
 
 # Top-Level Targets
 # =================
 
 all-local: stamps/netx-dist.stamp stamps/plugin.stamp stamps/docs.stamp \
- $(WIN_LAUNCHERS) \
- launcher.build/$(javaws) javaws.desktop launcher.build/$(itweb_settings) itweb-settings.desktop launcher.build/$(policyeditor) policyeditor.desktop
+ $(LAUNCHERS) $(DESKTOP_FILES)
 
 
 check-local: $(RHINO_TESTS) $(JUNIT_TESTS)
@@ -324,20 +353,27 @@
 	${INSTALL_PROGRAM} $(PLUGIN_DIR)/$(BUILT_PLUGIN_LIBRARY) $(DESTDIR)$(libdir)
 endif
 if ENABLE_PLUGINJAR
-	${INSTALL_DATA} $(TOP_BUILD_DIR)/liveconnect/lib/classes-applet.jar   $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
-	${INSTALL_DATA} $(TOP_BUILD_DIR)/liveconnect/lib/classes-jsobject.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/jsobject.jar
+	${INSTALL_DATA} $(TOP_BUILD_DIR)/liveconnect/lib/classes-applet.jar   $(DESTDIR)$(PLUGIN_JAR)
+	${INSTALL_DATA} $(TOP_BUILD_DIR)/liveconnect/lib/classes-jsobject.jar $(DESTDIR)$(JSOBJECT_JAR)
 endif
-	${INSTALL_DATA} $(NETX_DIR)/lib/classes.jar $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
-	${INSTALL_DATA} $(NETX_SRCDIR)/javaws_splash.png $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/javaws_splash.png
+	${INSTALL_DATA} $(NETX_DIR)/lib/classes.jar $(DESTDIR)$(NETX_JAR)
+	${INSTALL_DATA} $(NETX_SRCDIR)/javaws_splash.png $(DESTDIR)$(SPLASH_PNG)
 	${INSTALL_DATA} $(TOP_SRC_DIR)/javaws.png $(ICONS_DEST_DIR)/
+if ENABLE_NATIVE_LAUNCHERS
 	${INSTALL_PROGRAM} launcher.build/$(javaws) $(DESTDIR)$(bindir)
 	${INSTALL_PROGRAM} launcher.build/$(itweb_settings) $(DESTDIR)$(bindir)
 	${INSTALL_PROGRAM} launcher.build/$(policyeditor) $(DESTDIR)$(bindir)
+endif
+if ENABLE_SHELL_LAUNCHERS
+	${INSTALL_PROGRAM} launcher.build/$(javaws).sh $(DESTDIR)$(bindir)
+	${INSTALL_PROGRAM} launcher.build/$(itweb_settings).sh $(DESTDIR)$(bindir)
+	${INSTALL_PROGRAM} launcher.build/$(policyeditor).sh $(DESTDIR)$(bindir)
 if WINDOWS
 	${INSTALL_PROGRAM} launcher.build/$(javaws).bat $(DESTDIR)$(bindir)
 	${INSTALL_PROGRAM} launcher.build/$(itweb_settings).bat $(DESTDIR)$(bindir)
 	${INSTALL_PROGRAM} launcher.build/$(policyeditor).bat $(DESTDIR)$(bindir)
 endif
+endif
 	${INSTALL_DATA} $(TOP_BUILD_DIR)/completion/itweb-settings.bash $(BASH_CMPL_DEST_DIR)/
 	${INSTALL_DATA} $(TOP_BUILD_DIR)/completion/javaws.bash $(BASH_CMPL_DEST_DIR)/
 	${INSTALL_DATA} $(TOP_BUILD_DIR)/completion/policyeditor.bash $(BASH_CMPL_DEST_DIR)/
@@ -387,6 +423,26 @@
 endif
 endif
 
+#no npapi plugin at all!
+linux-bin-dist: install
+	rm -f $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)
+	mkdir -p $(LINUX_BIN_DIST_DEPS)
+if WITH_RHINO
+	filteredName=`basename $(RHINO_JAR) | sed "s/[^a-zA-Z]//g" | sed "s/jar$$/.jar/"` ; \
+	cp -v $(RHINO_JAR) $(LINUX_BIN_DIST_DEPS)/$$filteredName
+endif
+if HAVE_TAGSOUP
+	filteredName=`basename $(TAGSOUP_JAR) | sed "s/[^a-zA-Z]//g" | sed "s/jar$$/.jar/"` ; \
+	cp -v $(TAGSOUP_JAR) $(LINUX_BIN_DIST_DEPS)/$$filteredName
+endif
+	cp $(NETX_DIR)/lib/src.zip $(DESTDIR)$(prefix)/netx.src.zip
+if ENABLE_PLUGINJAR
+	cp $(TOP_BUILD_DIR)/liveconnect/lib/src.zip $(DESTDIR)$(prefix)/plugin.src.zip
+endif
+if ENABLE_DOCS
+	cp -r $(DOCS_DIR)/html $(DESTDIR)$(prefix)/icedtea-web-docs
+endif
+	(cd $(DESTDIR)$(prefix)/.. && $(ZIP) -qr $(TOP_BUILD_DIR)/$(distdir).linux.bin.zip `basename $(DESTDIR)$(prefix)` );
 
 win-bin-dist: win-only-image
 	(cd $(DESTDIR)$(prefix)/.. && $(ZIP) -qr $(TOP_BUILD_DIR)/$(distdir).win.bin.zip `basename $(DESTDIR)$(prefix)` );
@@ -439,6 +495,7 @@
 	if ls -1qA $$dirCandidate | grep -q . ; then echo "$$dirCandidate not empty"; else rmdir -v $$dirCandidate ; fi ;
 
 # all generated manpages must be removed one by one
+# shell (only shell!) lunchers must go away
 uninstall-linux-only:
 	KNOWN_MANS="icedtea-web.1  icedtea-web-plugin.1  itweb-settings.1  javaws.1  policyeditor.1" ; \
 	KNOWN_DIRS="man1 de/man1 pl/man1 cs/man1" ; \
@@ -448,18 +505,18 @@
 	  done ; \
 	done
 	rm -f $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)
-	rm -f $(DESTDIR)$(bindir)/$(javaws)
-	rm -f $(DESTDIR)$(bindir)/$(itweb_settings)
-	rm -f $(DESTDIR)$(bindir)/$(policyeditor)
+	rm -f $(DESTDIR)$(bindir)/$(javaws).sh
+	rm -f $(DESTDIR)$(bindir)/$(itweb_settings).sh
+	rm -f $(DESTDIR)$(bindir)/$(policyeditor).sh
 	rm -f $(BASH_CMPL_DEST_DIR)/itweb-settings.bash
 	rm -f $(BASH_CMPL_DEST_DIR)/javaws.bash
 	rm -f $(BASH_CMPL_DEST_DIR)/policyeditor.bash
 
 uninstall-local: uninstall-linux-only
-	rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/plugin.jar
-	rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/jsobject.jar
-	rm -f $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/netx.jar
-	rm -r $(DESTDIR)$(datadir)/$(PACKAGE_NAME)/javaws_splash.png
+	rm -f $(DESTDIR)$(PLUGIN_JAR)
+	rm -f $(DESTDIR)$(JSOBJECT_JAR)
+	rm -f $(DESTDIR)$(NETX_JAR)
+	rm -r $(DESTDIR)$(SPLASH_PNG)
 	rm -r $(ICONS_DEST_DIR)/javaws.png
 	rm -rf $(DESTDIR)$(htmldir)
 if WINDOWS
@@ -493,14 +550,14 @@
 	   $(DEFS) $(VERSION_DEFS) \
 	  -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
 	  -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \
-	  -DJAVAWS_BIN="\"$(bindir)/$(javaws)\"" \
+	  -DJAVAWS_BIN="\"$(bindir)/$(JAVAWS)\"" \
 	  -DJAVAWS_NAME="\"$(javaws)\"" \
 	  -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \
 	  -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \
 	  -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \
 	  -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \
 	  -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \
-	  -DNETX_JAR="\"$(datadir)/$(PACKAGE_NAME)/netx.jar\"" \
+	  -DNETX_JAR="\"$(NETX_JAR)\"" \
 	  -DPLUGIN_JAR="\"$(PLUGIN_JAR)\"" \
 	  -DJSOBJECT_JAR="\"$(JSOBJECT_JAR)\""\
 	  $(GLIB_CFLAGS) \
@@ -548,14 +605,14 @@
 	   $(DEFS) $(VERSION_DEFS) \
 	  -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
 	  -DPLUGIN_NAME="\"IcedTea-Web Plugin\"" \
-	  -DJAVAWS_BIN="\"$(bindir)/$(javaws)\"" \
+	  -DJAVAWS_BIN="\"$(bindir)/$(JAVAWS)\"" \
 	  -DJAVAWS_NAME="\"$(javaws)\"" \
 	  -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \
 	  -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \
 	  -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \
 	  -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \
 	  -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_BOOTCLASSPATH) \
-	  -DNETX_JAR="\"$(datadir)/$(PACKAGE_NAME)/netx.jar\"" \
+	  -DNETX_JAR="\"$(NETX_JAR)\"" \
 	  -DPLUGIN_JAR="\"$(PLUGIN_JAR)\"" \
 	  -DJSOBJECT_JAR="\"$(JSOBJECT_JAR)\""\
 	  $(GLIB_CFLAGS) \
@@ -834,28 +891,31 @@
 clean-desktop-files:
 	rm -f javaws.desktop
 	rm -f itweb-settings.desktop
+	rm -f policyeditor.desktop
 
-launcher.build/$(javaws): launcher/launchers.in
+if ENABLE_SHELL_LAUNCHERS
+launcher.build/$(javaws).sh: launcher/launchers.sh.in
 	mkdir -p launcher.build
 	MAIN_CLASS=net.sourceforge.jnlp.runtime.Boot ;\
-	BIN_LOCATION=$(bindir)/$(javaws) ;\
+	BIN_LOCATION=$(bindir)/$(javaws).sh ;\
 	PROGRAM_NAME=$(javaws) ;\
 	$(edit_launcher_script) < $< > $@
 
-launcher.build/$(itweb_settings): launcher/launchers.in
+launcher.build/$(itweb_settings).sh: launcher/launchers.sh.in
 	mkdir -p launcher.build
 	MAIN_CLASS=net.sourceforge.jnlp.controlpanel.CommandLine ;\
-	BIN_LOCATION=$(bindir)/$(itweb_settings) ;\
+	BIN_LOCATION=$(bindir)/$(itweb_settings).sh ;\
 	PROGRAM_NAME=$(itweb_settings) ;\
 	$(edit_launcher_script) < $< > $@
 
-launcher.build/$(policyeditor): launcher/launchers.in
+launcher.build/$(policyeditor).sh: launcher/launchers.sh.in
 	mkdir -p launcher.build
 	MAIN_CLASS=net.sourceforge.jnlp.security.policyeditor.PolicyEditor ;\
-	BIN_LOCATION=$(bindir)/$(policyeditor) ;\
+	BIN_LOCATION=$(bindir)/$(policyeditor).sh ;\
 	PROGRAM_NAME=$(policyeditor) ;\
 	$(edit_launcher_script) < $< > $@
 
+if WINDOWS
 # TODO get rid of this copypaste
 launcher.build/$(javaws).bat: launcher/launchers.bat.in
 	mkdir -p launcher.build
@@ -880,29 +940,39 @@
 	BIN_LOCATION=$(bindir)/$(policyeditor) ;\
 	PROGRAM_NAME=$(policyeditor) ;\
 	$(edit_launcher_script) < $< > $@
+endif
+endif
 
 clean-launchers:
+if ENABLE_NATIVE_LAUNCHERS
 	rm -f launcher.build/$(javaws)
 	rm -f launcher.build/$(itweb_settings)
 	rm -f launcher.build/$(policyeditor)
+	rm -rf launcher.in*
+endif
+if ENABLE_SHELL_LAUNCHERS
+	rm -f launcher.build/$(javaws).sh
+	rm -f launcher.build/$(itweb_settings).sh
+	rm -f launcher.build/$(policyeditor).sh
 if WINDOWS
 	rm -f launcher.build/$(javaws).bat
 	rm -f launcher.build/$(itweb_settings).bat
 	rm -f launcher.build/$(policyeditor).bat
 endif
+endif
 	if [ -e launcher.build ] ; then \
 	  rmdir launcher.build ; \
 	fi
 
 javaws.desktop: javaws.desktop.in
-	sed "s#PATH_TO_JAVAWS#$(bindir)/$(javaws)#" < $(srcdir)/javaws.desktop.in > javaws.desktop
+	sed "s#PATH_TO_JAVAWS#$(bindir)/$(JAVAWS)#" < $(srcdir)/javaws.desktop.in > javaws.desktop
 
 itweb-settings.desktop: $(srcdir)/itweb-settings.desktop.in
-	sed "s#PATH_TO_ITWEB_SETTINGS#$(bindir)/$(itweb_settings)#" \
+	sed "s#PATH_TO_ITWEB_SETTINGS#$(bindir)/$(ITWEB_SETTINGS)#" \
 	  < $(srcdir)/itweb-settings.desktop.in > itweb-settings.desktop
 
 policyeditor.desktop: $(srcdir)/policyeditor.desktop.in
-	sed 's#PATH_TO_POLICYEDITOR#$(bindir)/$(policyeditor)#' \
+	sed "s#PATH_TO_POLICYEDITOR#$(bindir)/$(POLICYEDITOR)#" \
 	< $(srcdir)/policyeditor.desktop.in > policyeditor.desktop
 
 # documentation
@@ -1265,8 +1335,8 @@
 	done ; \
 	echo $$class_names > $(REPRODUCERS_CLASS_NAMES)
 
-stamps/run-netx-dist-tests.stamp: stamps/netx-dist.stamp stamps/plugin.stamp launcher.build/$(javaws) \
- javaws.desktop stamps/docs.stamp launcher.build/$(itweb_settings) itweb-settings.desktop launcher.build/$(policyeditor) policyeditor.desktop \
+stamps/run-netx-dist-tests.stamp: stamps/netx-dist.stamp stamps/plugin.stamp stamps/docs.stamp \
+ $(LAUNCHERS) $(DESKTOP_FILES) \
  stamps/netx.stamp stamps/junit-jnlp-dist-dirs stamps/netx-dist-tests-import-cert-to-public \
  stamps/test-extensions-compile.stamp stamps/compile-reproducers-testcases.stamp $(JUNIT_RUNNER_JAR) stamps/copy-reproducers-resources.stamp\
  $(TESTS_DIR)/$(REPORT_STYLES_DIRNAME) $(REPRODUCERS_CLASS_NAMES) stamps/process-custom-reproducers.stamp
@@ -1312,7 +1382,7 @@
 #icedtea-web plugin inside browser it is intended for testing purposes
 if ENABLE_NATIVE_PLUGIN
 stamps/user-links.stamp: stamps/netx-dist.stamp stamps/plugin.stamp \
- launcher.build/$(javaws) stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) 
+ $(LAUNCHERS) stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)
 	if [ $(MOZILLA_FAMILY_TEST) ]  ; then  \
 	  if [ -e $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME) ] ; then \
 	    mv -f $(MOZILLA_LOCAL_PLUGINDIR)/$(PLUGIN_LINK_NAME)  $(MOZILLA_LOCAL_BACKUP_FILE) ; \
@@ -1341,7 +1411,7 @@
 	  rm -f stamps/user-links.stamp ; \
 	fi
 
-stamps/global-links.stamp: stamps/netx-dist.stamp stamps/plugin.stamp launcher.build/$(javaws) \
+stamps/global-links.stamp: stamps/netx-dist.stamp stamps/plugin.stamp $(LAUNCHERS) \
  stamps/netx.stamp $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)
 	if [ $(MOZILLA_FAMILY_TEST) ]  ; then  \
 	    dir="$(MOZILLA_GLOBAL32_PLUGINDIR)"  ; \
@@ -1517,7 +1587,7 @@
 	   $(DEFS) $(VERSION_DEFS) \
 	  -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \
 	  -DPLUGIN_NAME="\"IcedTea-Web Plugin with jacoco coverage agent\"" \
-	  -DJAVAWS_BIN="\"$(bindir)/$(javaws)\"" \
+	  -DJAVAWS_BIN="\"$(bindir)/$(JAVAWS)\"" \
 	  -DJAVAWS_NAME="\"$(javaws)\"" \
 	  -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \
 	  -DPACKAGE_URL="\"$(PACKAGE_URL)\"" \
@@ -1525,7 +1595,7 @@
 	  -DICEDTEA_WEB_JRE="\"$(SYSTEM_JRE_DIR)\"" \
 	  -DPLUGIN_BOOTCLASSPATH=$(PLUGIN_COVERAGE_BOOTCLASSPATH) \
 	  -DCOVERAGE_AGENT=$(JACOCO_AGENT_PLUGIN_SWITCH) \
-	  -DNETX_JAR="\"$(datadir)/$(PACKAGE_NAME)/netx.jar\"" \
+	  -DNETX_JAR="\"$(NETX_JAR)\"" \
 	  -DPLUGIN_JAR="\"$(PLUGIN_JAR)\"" \
 	  -DJSOBJECT_JAR="\"$(JSOBJECT_JAR)\""\
 	  $(GLIB_CFLAGS) \
@@ -1553,13 +1623,13 @@
 	for file in $(COVERAGE_MODIFIED_FILES) ; do \
 	  mv $(TEST_EXTENSIONS_DIR)/$$file $(TEST_EXTENSIONS_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \
 	done ;\
-	echo "backuping javaws in $(DESTDIR)$(bindir)" ; \
+	echo "backuping $(JAVAWS) in $(DESTDIR)$(bindir)" ; \
 	javaws_backup=$(DESTDIR)$(bindir)/javaws_backup ; \
-	mv $(DESTDIR)$(bindir)/javaws $$javaws_backup ;  \
-	echo "patching $(javaws)" ; \
+	mv $(DESTDIR)$(bindir)/$(JAVAWS) $$javaws_backup ;  \
+	echo "patching $(JAVAWS)" ; \
 	nw_bootclasspath="-Xbootclasspath/a:$(UNIFIED_JACOCO_CLASSPATH)" ; \
-	cat $$javaws_backup | sed "s|COMMAND.k.=\"..JAVA.\"|COMMAND[k]=\"\\$$\\{JAVA\\}\" ;  k=1 ; COMMAND[k]=$(JACOCO_AGENT_JAVAWS_SWITCH)|" | sed "s,$(LAUNCHER_BOOTCLASSPATH),$$nw_bootclasspath," > $(DESTDIR)$(bindir)/$(javaws) ; \
-	chmod 777 $(DESTDIR)$(bindir)/$(javaws) ; \
+	cat $$javaws_backup | sed "s|COMMAND.k.=\"..JAVA.\"|COMMAND[k]=\"\\$$\\{JAVA\\}\" ;  k=1 ; COMMAND[k]=$(JACOCO_AGENT_JAVAWS_SWITCH)|" | sed "s,$(LAUNCHER_BOOTCLASSPATH),$$nw_bootclasspath," > $(DESTDIR)$(bindir)/$(JAVAWS) ; \
+	chmod 777 $(DESTDIR)$(bindir)/$(JAVAWS) ; \
 	echo "backuping plugin in $(DESTDIR)/$(libdir)$(BUILT_PLUGIN_LIBRARY)" ; \
 	plugin_backup=$(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY)_backup ; \
 	mv $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) $$plugin_backup ;  \
@@ -1605,9 +1675,9 @@
 	  --input-srcs  $(NETX_SRCDIR) $(PLUGIN_SRCDIR)/java  $(JUNIT_RUNNER_SRCDIR) $(TEST_EXTENSIONS_SRCDIR) $(TEST_EXTENSIONS_TESTS_SRCDIR) "$${testcases_srcs[@]}" \
 	  --input-builds $(NETX_DIR)/lib/classes.jar $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar  $(JUNIT_RUNNER_JAR)  $(TEST_EXTENSIONS_DIR) $(TEST_EXTENSIONS_TESTS_DIR) \
 	  --title "IcedTea-Web reproducers-tests codecoverage" ; \
-	echo "restoring javaws in $(DESTDIR)$(bindir)" ; \
+	echo "restoring $(JAVAWS) in $(DESTDIR)$(bindir)" ; \
 	rm -f $(DESTDIR)$(bindir)/$(javaws);  \
-	mv $$javaws_backup $(DESTDIR)$(bindir)/$(javaws);  \
+	mv $$javaws_backup $(DESTDIR)$(bindir)/$(JAVAWS);  \
 	echo "restoring  plugin in $(DESTDIR)/$(libdir)$(BUILT_PLUGIN_LIBRARY)" ; \
 	mv $$plugin_backup $(DESTDIR)$(libdir)/$(BUILT_PLUGIN_LIBRARY) ; \
 	for file in $(COVERAGE_MODIFIED_FILES) ; do \
--- a/configure.ac	Tue Dec 18 11:22:16 2018 +0100
+++ b/configure.ac	Wed Jan 09 17:41:55 2019 +0100
@@ -39,6 +39,11 @@
     AC_MSG_ERROR([/bin/bash is used in runtime and for about generation. Dying sooner rather then later])
 fi
 
+#shell launchers are only opinion for 1.7
+AM_CONDITIONAL([ENABLE_SHELL_LAUNCHERS], [true])
+#native launchers do not exists in 1.7
+AM_CONDITIONAL([ENABLE_NATIVE_LAUNCHERS], [false])
+
 build_linux=no
 build_windows=no
 case "${host_os}" in
--- a/launcher/launchers.in	Tue Dec 18 11:22:16 2018 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-#!/bin/bash
-
-NASHORN=lib/ext/nashorn.jar
-JAVA=@JAVA@
-LAUNCHER_BOOTCLASSPATH='@LAUNCHER_BOOTCLASSPATH@'
-LAUNCHER_FLAGS=-Xms8m
-CLASSNAME=@MAIN_CLASS@
-BINARY_LOCATION=@BIN_LOCATION@
-SPLASH_LOCATION=@JAVAWS_SPLASH_LOCATION@
-PROGRAM_NAME=@PROGRAM_NAME@
-CP=@JRE@/lib/rt.jar:@JRE@/lib/jfxrt.jar
-
-CONFIG_HOME=$XDG_CONFIG_HOME
-if [ "x$CONFIG_HOME" = "x" ] ; then
-  CONFIG_HOME=~/.config
-fi;
-PROPERTY_NAME=deployment.jre.dir
-CUSTOM_JRE_REGEX="^$PROPERTY_NAME *= *"
-CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" $CONFIG_HOME/icedtea-web/deployment.properties 2>/dev/null |  sed "s/$CUSTOM_JRE_REGEX//g"`
-#now check in legacy one
-if [ "x$CUSTOM_JRE" = "x" ] ; then
-  CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" ~/.icedtea/deployment.properties 2>/dev/null |  sed "s/$CUSTOM_JRE_REGEX//g"`
-fi;
-#now check in global one
-if [ "x$CUSTOM_JRE" = "x" ] ; then
-  CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" /etc/.java/.deploy/deployment.properties 2>/dev/null |  sed "s/$CUSTOM_JRE_REGEX//g"`
-fi;
-if [ "x$CUSTOM_JRE" != "x" ] ; then
-  if [ -e  "$CUSTOM_JRE" -a -e "$CUSTOM_JRE/bin/java" ] ; then
-    JAVA=$CUSTOM_JRE/bin/java
-    CP=$CUSTOM_JRE/lib/rt.jar:$CUSTOM_JRE/lib/jfxrt.jar
-    LAUNCHER_BOOTCLASSPATH=$LAUNCHER_BOOTCLASSPATH:$CUSTOM_JRE/$NASHORN
-  else
-    echo "Your custom JRE $CUSTOM_JRE read from deployment.properties under key $PROPERTY_NAME as $CUSTOM_JRE is not valid. Using default ($JAVA, $CP) in attempt to start. Please fix this."
-  fi
-else
-  LAUNCHER_BOOTCLASSPATH="$LAUNCHER_BOOTCLASSPATH:@JRE@/$NASHORN"
-fi;
-
-MODULAR_JDK="NO"
-version=`${JAVA} -version 2>&1 | head -n 1 | cut -d'-' -f1 | cut -d'"' -f2 | cut -d'.' -f1`
-if [ $version -eq "1" ]; then
-  version=`${JAVA} -version 2>&1 | head -n 1 | cut -d'-' -f1 | cut -d'"' -f2 | cut -d'.' -f2`
-fi
-if [ $version -ge "9" ]; then
-  MODULAR_JDK="YES"
-fi
-
-JAVA_ARGS=( )
-ARGS=( )
-COMMAND=()
-
-i=0
-j=0
-
-SPLASH="false"
-if [ "x$ICEDTEA_WEB_SPLASH" = "x" ] ; then
-SPLASH="true"
-fi;
-while [ "$#" -gt "0" ]; do
-  case "$1" in
-    -J*)
-      JAVA_ARGS[$i]="${1##-J}"
-      i=$((i+1))
-      ;;
-    *)
-      ARGS[$j]="$1"
-      j=$((j+1))
-      if [[ "$1" =~ ^[-]*headless ]] ; then   
-        SPLASH="false"
-      fi
-      ;;
-  esac
-  shift
-done
-
-k=0
-COMMAND[k]="${JAVA}"
-k=$((k+1))
-if [ "$SPLASH" = "true" ] ; then
-COMMAND[k]="-splash:${SPLASH_LOCATION}"
-k=$((k+1))
-fi;
-COMMAND[k]="${LAUNCHER_BOOTCLASSPATH}"
-k=$((k+1))
-COMMAND[k]="${LAUNCHER_FLAGS}"
-k=$((k+1))
-
-if [ "x$MODULAR_JDK" == "xYES" ] ; then
-COMMAND[k]="--patch-module"
-k=$((k+1))
-COMMAND[k]="java.desktop=@PLUGIN_JAR@:@NETX_JAR@"
-k=$((k+1))
-# jsobject must be pathched separately from plugin
-# otherwise netscape pkg would be shared by two modules, which is forbiden
-JSOBJECT_JAR=@JSOBJECT_JAR@
-# plugin jar may not be built
-if [ ! "x$JSOBJECT_JAR" == "x" ] ; then
-  COMMAND[k]="--patch-module"
-  k=$((k+1))
-  COMMAND[k]="jdk.jsobject=$JSOBJECT_JAR"
-  k=$((k+1))
-fi
-
-COMMAND[k]="--add-reads"
-k=$((k+1))
-COMMAND[k]="java.base=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-reads"
-k=$((k+1))
-COMMAND[k]="java.desktop=ALL-UNNAMED,java.naming"
-k=$((k+1))
-COMMAND[k]="--add-reads"
-k=$((k+1))
-COMMAND[k]="java.naming=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.desktop/sun.awt=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.desktop/javax.jnlp=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.base/sun.security.provider=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.base/sun.security.util=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.base/sun.security.x509=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.base/jdk.internal.util.jar=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.base/sun.security.validator=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.base/com.sun.net.ssl.internal.ssl=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.base/sun.net.www.protocol.jar=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.desktop/sun.awt.X11=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.naming/com.sun.jndi.toolkit.url=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.desktop/sun.applet=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.base/sun.security.action=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.base/sun.net.www.protocol.http=ALL-UNNAMED,java.desktop"
-k=$((k+1))
-COMMAND[k]="--add-exports"
-k=$((k+1))
-COMMAND[k]="java.desktop/sun.applet=ALL-UNNAMED,jdk.jsobject"
-k=$((k+1))
-fi
-
-
-i=0
-while [ "$i" -lt "${#JAVA_ARGS[@]}" ]; do
-  COMMAND[k]="${JAVA_ARGS[$i]}"
-  i=$((i+1))
-  k=$((k+1))
-done
-COMMAND[k]="-classpath"
-k=$((k+1))
-COMMAND[k]="${CP}"
-k=$((k+1))
-COMMAND[k]="-Dicedtea-web.bin.name=${PROGRAM_NAME}"
-k=$((k+1))
-COMMAND[k]="-Dicedtea-web.bin.location=${BINARY_LOCATION}"
-k=$((k+1))
-COMMAND[k]="${CLASSNAME}"
-k=$((k+1))
-j=0
-while [ "$j" -lt "${#ARGS[@]}" ]; do
-  COMMAND[k]="${ARGS[$j]}"
-  j=$((j+1))
-  k=$((k+1))
-done
-
-exec -a "$PROGRAM_NAME" "${COMMAND[@]}"
-
-exit $?
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/launcher/launchers.sh.in	Wed Jan 09 17:41:55 2019 +0100
@@ -0,0 +1,206 @@
+#!/bin/bash
+
+NASHORN=lib/ext/nashorn.jar
+JAVA=@JAVA@
+LAUNCHER_BOOTCLASSPATH='@LAUNCHER_BOOTCLASSPATH@'
+LAUNCHER_FLAGS=-Xms8m
+CLASSNAME=@MAIN_CLASS@
+BINARY_LOCATION=@BIN_LOCATION@
+SPLASH_LOCATION=@JAVAWS_SPLASH_LOCATION@
+PROGRAM_NAME=@PROGRAM_NAME@
+CP=@JRE@/lib/rt.jar:@JRE@/lib/jfxrt.jar
+
+CONFIG_HOME=$XDG_CONFIG_HOME
+if [ "x$CONFIG_HOME" = "x" ] ; then
+  CONFIG_HOME=~/.config
+fi;
+PROPERTY_NAME=deployment.jre.dir
+CUSTOM_JRE_REGEX="^$PROPERTY_NAME *= *"
+CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" $CONFIG_HOME/icedtea-web/deployment.properties 2>/dev/null |  sed "s/$CUSTOM_JRE_REGEX//g"`
+#now check in legacy one
+if [ "x$CUSTOM_JRE" = "x" ] ; then
+  CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" ~/.icedtea/deployment.properties 2>/dev/null |  sed "s/$CUSTOM_JRE_REGEX//g"`
+fi;
+#now check in global one
+if [ "x$CUSTOM_JRE" = "x" ] ; then
+  CUSTOM_JRE=`grep "$CUSTOM_JRE_REGEX" /etc/.java/.deploy/deployment.properties 2>/dev/null |  sed "s/$CUSTOM_JRE_REGEX//g"`
+fi;
+if [ "x$CUSTOM_JRE" != "x" ] ; then
+  if [ -e  "$CUSTOM_JRE" -a -e "$CUSTOM_JRE/bin/java" ] ; then
+    JAVA=$CUSTOM_JRE/bin/java
+    CP=$CUSTOM_JRE/lib/rt.jar:$CUSTOM_JRE/lib/jfxrt.jar
+    LAUNCHER_BOOTCLASSPATH=$LAUNCHER_BOOTCLASSPATH:$CUSTOM_JRE/$NASHORN
+  else
+    echo "Your custom JRE $CUSTOM_JRE read from deployment.properties under key $PROPERTY_NAME as $CUSTOM_JRE is not valid. Using default ($JAVA, $CP) in attempt to start. Please fix this."
+  fi
+else
+  LAUNCHER_BOOTCLASSPATH="$LAUNCHER_BOOTCLASSPATH:@JRE@/$NASHORN"
+fi;
+
+MODULAR_JDK="NO"
+version=`${JAVA} -version 2>&1 | head -n 1 | cut -d'-' -f1 | cut -d'"' -f2 | cut -d'.' -f1`
+if [ $version -eq "1" ]; then
+  version=`${JAVA} -version 2>&1 | head -n 1 | cut -d'-' -f1 | cut -d'"' -f2 | cut -d'.' -f2`
+fi
+if [ $version -ge "9" ]; then
+  MODULAR_JDK="YES"
+fi
+
+JAVA_ARGS=( )
+ARGS=( )
+COMMAND=()
+
+i=0
+j=0
+
+SPLASH="false"
+if [ "x$ICEDTEA_WEB_SPLASH" = "x" ] ; then
+SPLASH="true"
+fi;
+while [ "$#" -gt "0" ]; do
+  case "$1" in
+    -J*)
+      JAVA_ARGS[$i]="${1##-J}"
+      i=$((i+1))
+      ;;
+    *)
+      ARGS[$j]="$1"
+      j=$((j+1))
+      if [[ "$1" =~ ^[-]*headless ]] ; then   
+        SPLASH="false"
+      fi
+      ;;
+  esac
+  shift
+done
+
+k=0
+COMMAND[k]="${JAVA}"
+k=$((k+1))
+if [ "$SPLASH" = "true" ] ; then
+COMMAND[k]="-splash:${SPLASH_LOCATION}"
+k=$((k+1))
+fi;
+COMMAND[k]="${LAUNCHER_BOOTCLASSPATH}"
+k=$((k+1))
+COMMAND[k]="${LAUNCHER_FLAGS}"
+k=$((k+1))
+
+if [ "x$MODULAR_JDK" == "xYES" ] ; then
+COMMAND[k]="--patch-module"
+k=$((k+1))
+COMMAND[k]="java.desktop=@PLUGIN_JAR@:@NETX_JAR@"
+k=$((k+1))
+# jsobject must be pathched separately from plugin
+# otherwise netscape pkg would be shared by two modules, which is forbiden
+JSOBJECT_JAR=@JSOBJECT_JAR@
+# plugin jar may not be built
+if [ ! "x$JSOBJECT_JAR" == "x" ] ; then
+  COMMAND[k]="--patch-module"
+  k=$((k+1))
+  COMMAND[k]="jdk.jsobject=$JSOBJECT_JAR"
+  k=$((k+1))
+fi
+
+COMMAND[k]="--add-reads"
+k=$((k+1))
+COMMAND[k]="java.base=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-reads"
+k=$((k+1))
+COMMAND[k]="java.desktop=ALL-UNNAMED,java.naming"
+k=$((k+1))
+COMMAND[k]="--add-reads"
+k=$((k+1))
+COMMAND[k]="java.naming=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.desktop/sun.awt=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.desktop/javax.jnlp=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.base/sun.security.provider=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.base/sun.security.util=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.base/sun.security.x509=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.base/jdk.internal.util.jar=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.base/sun.security.validator=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.base/com.sun.net.ssl.internal.ssl=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.base/sun.net.www.protocol.jar=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.desktop/sun.awt.X11=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.naming/com.sun.jndi.toolkit.url=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.desktop/sun.applet=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.base/sun.security.action=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.base/sun.net.www.protocol.http=ALL-UNNAMED,java.desktop"
+k=$((k+1))
+COMMAND[k]="--add-exports"
+k=$((k+1))
+COMMAND[k]="java.desktop/sun.applet=ALL-UNNAMED,jdk.jsobject"
+k=$((k+1))
+fi
+
+
+i=0
+while [ "$i" -lt "${#JAVA_ARGS[@]}" ]; do
+  COMMAND[k]="${JAVA_ARGS[$i]}"
+  i=$((i+1))
+  k=$((k+1))
+done
+COMMAND[k]="-classpath"
+k=$((k+1))
+COMMAND[k]="${CP}"
+k=$((k+1))
+COMMAND[k]="-Dicedtea-web.bin.name=${PROGRAM_NAME}"
+k=$((k+1))
+COMMAND[k]="-Dicedtea-web.bin.location=${BINARY_LOCATION}"
+k=$((k+1))
+COMMAND[k]="${CLASSNAME}"
+k=$((k+1))
+j=0
+while [ "$j" -lt "${#ARGS[@]}" ]; do
+  COMMAND[k]="${ARGS[$j]}"
+  j=$((j+1))
+  k=$((k+1))
+done
+
+exec -a "$PROGRAM_NAME" "${COMMAND[@]}"
+
+exit $?