{"id":67,"date":"2009-07-03T21:49:58","date_gmt":"2009-07-04T04:49:58","guid":{"rendered":"http:\/\/blog.jausoft.com\/?p=67"},"modified":"2019-05-14T04:55:44","modified_gmt":"2019-05-14T08:55:44","slug":"jogl-applets-part-1","status":"publish","type":"post","link":"https:\/\/jausoft.com\/blog\/2009\/07\/03\/jogl-applets-part-1\/","title":{"rendered":"JOGL: Applets (part 1)"},"content":{"rendered":"<p>A Java Applet using JOGL may utilize 2 methods<\/p>\n<ul>\n<li><a href=\"https:\/\/jdk6.dev.java.net\/plugin2\/jnlp\/\" target=\"_blank\" rel=\"noopener noreferrer\">New\u00a0 JNLP Applet<\/a><\/li>\n<li><a href=\"https:\/\/applet-launcher.dev.java.net\/\" target=\"_blank\" rel=\"noopener noreferrer\">Applet-Launcher<\/a><\/li>\n<\/ul>\n<p>Standard JNLP Applets are supported starting with Java 6u14, however, if you run MacOSX or an older version of\u00a0 Java,<br \/>\nyou may need to use the Applet-Launcher.<!--more--><\/p>\n<p>Below we utilize both, the standard JNLP mechanism of 6u14 as the default,<br \/>\nor falling back to our\u00a0 Applet-Launcher.<\/p>\n<p>You will find the JNLP file <em>applet-gears.jnlp <\/em>further below, which is being used in case of a JNLP launch,<br \/>\notherwise it is ignored and the <em>archive <\/em>tags are being used, hence the <em>applet-launcher <\/em>will be started.<\/p>\n<p>Note that it is important for the startup time to have the same JVM arguments in the applet tags,<br \/>\nas well as within the JNLP applet description, here see property <em>sun.java2d.noddraw<\/em>.<br \/>\nOnly if JVM arguments of the JNLP applet description are satisfied by the applet tag&#8217;s JVM,<br \/>\nthe plugin will not need to start a new JVM. OF course, the applet tag&#8217;s JVM spec may exceed the JNLP applet&#8217;s one.\n<param name=\"codebase_lookup\" value=\"false\" \/>\n<param name=\"subapplet.classname\" value=\"demos.applets.GearsApplet\" \/>\n<param name=\"subapplet.displayname\" value=\"JOGL Gears Applet\" \/>\n<param name=\"noddraw.check\" value=\"true\" \/>\n<param name=\"progressbar\" value=\"true\" \/>\n<param name=\"jnlpNumExtensions\" value=\"1\" \/>\n<param name=\"jnlpExtension1\" value=\"http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/jogl-core.jnlp\" \/>\n<param name=\"java_arguments\" value=\"-Dsun.java2d.noddraw=true\" \/>\n<param name=\"jnlp_href\" value=\"applet-gears.jnlp\" \/>\n<pre>&lt;applet code=\"org.jdesktop.applet.util.JNLPAppletLauncher\"\r\n      width=600\r\n      height=400\r\n      archive=\"<a title=\"Linkification: http:\/\/download.java.net\/media\/applet-launcher\/applet-launcher.jar\" href=\"http:\/\/download.java.net\/media\/applet-launcher\/applet-launcher.jar\">http:\/\/download.java.net\/media\/applet-launcher\/applet-launcher.jar<\/a>,\r\n               <a title=\"Linkification: http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/nativewindow.all.jar\" href=\"http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/nativewindow.all.jar\">http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/nativewindow.all.jar<\/a>,\r\n               <a title=\"Linkification: http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/jogl.all.jar\" href=\"http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/jogl.all.jar\">http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/jogl.all.jar<\/a>,\r\n               <a title=\"Linkification: http:\/\/download.java.net\/media\/gluegen\/webstart-2.x\/gluegen-rt.jar\" href=\"http:\/\/download.java.net\/media\/gluegen\/webstart-2.x\/gluegen-rt.jar\">http:\/\/download.java.net\/media\/gluegen\/webstart-2.x\/gluegen-rt.jar<\/a>,\r\n               <a title=\"Linkification: http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-demos-webstart\/jogl-demos.jar\" href=\"http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-demos-webstart\/jogl-demos.jar\">http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-demos-webstart\/jogl-demos.jar<\/a>\"&gt;\r\n   &lt;param name=\"codebase_lookup\" value=\"false\"&gt;\r\n   &lt;param name=\"subapplet.classname\" value=\"demos.applets.GearsApplet\"&gt;\r\n   &lt;param name=\"subapplet.displayname\" value=\"JOGL Gears Applet\"&gt;\r\n   &lt;param name=\"noddraw.check\" value=\"true\"&gt;\r\n   &lt;param name=\"progressbar\" value=\"true\"&gt;\r\n   &lt;param name=\"jnlpNumExtensions\" value=\"1\"&gt;\r\n   &lt;param name=\"jnlpExtension1\"\r\n          value=\"<a title=\"Linkification: http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/jogl-core.jnlp\" href=\"http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/jogl-core.jnlp\">http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/jogl-core.jnlp<\/a>\"&gt;\r\n   &lt;param name=\"java_arguments\" value=\"-Dsun.java2d.noddraw=true\"&gt;\r\n   &lt;param name=\"jnlp_href\" value=\"applet-gears.jnlp\"&gt;\r\n&lt;\/applet&gt;<\/pre>\n<p>Where the referenced JNLP file <em>applet-gears.jnlp<\/em> looks as follow:<\/p>\n<pre>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n&lt;jnlp href=\"applet-gears.jnlp\"&gt;\r\n  &lt;information&gt;\r\n    &lt;title&gt;JOGL JNLP Applet Gears Demo&lt;\/title&gt;\r\n    &lt;vendor&gt;Sun Microsystems, Inc.&lt;\/vendor&gt;\r\n    &lt;homepage href=\"<a title=\"Linkification: http:\/\/jogl-demos.dev.java.net\/\" href=\"http:\/\/jogl-demos.dev.java.net\/\">http:\/\/jogl-demos.dev.java.net\/<\/a>\"\/&gt;\r\n    &lt;description&gt;Gears Demo&lt;\/description&gt;\r\n    &lt;description kind=\"short\"&gt;Brian Paul's Gears demo ported to Java and JOGL.&lt;\/description&gt;\r\n    &lt;offline-allowed\/&gt;\r\n  &lt;\/information&gt;\r\n\r\n    &lt;resources&gt;\r\n      &lt;j2se href=\"<a title=\"Linkification: http:\/\/java.sun.com\/products\/autodl\/j2se\" href=\"http:\/\/java.sun.com\/products\/autodl\/j2se\">http:\/\/java.sun.com\/products\/autodl\/j2se<\/a>\" version=\"1.4+\"\/&gt;\r\n      &lt;property name=\"sun.java2d.noddraw\" value=\"true\"\/&gt;\r\n      &lt;jar href=\"<a title=\"Linkification: http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-demos-webstart\/jogl-demos.jar\" href=\"http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-demos-webstart\/jogl-demos.jar\">http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-demos-webstart\/jogl-demos.jar<\/a>\" main=\"true\"\/&gt;\r\n      &lt;jar href=\"<a title=\"Linkification: http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-demos-webstart\/jogl-demos-util.jar\" href=\"http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-demos-webstart\/jogl-demos-util.jar\">http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-demos-webstart\/jogl-demos-util.jar<\/a>\"\/&gt;\r\n      &lt;extension name=\"jogl-all-awt\" href=\"<a title=\"Linkification: http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/jogl-all-awt.jnlp\" href=\"http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/jogl-all-awt.jnlp\">http:\/\/download.java.net\/media\/jogl\/jsr-231-2.x-webstart\/jogl-all-awt.jnlp<\/a>\" \/&gt;\r\n    &lt;\/resources&gt;\r\n\r\n  &lt;applet-desc\r\n      name=\"Gears-Applet\"\r\n      main-class=\"demos.applets.GearsApplet\"\r\n      width=\"640\"\r\n      height=\"480\"&gt;\r\n  &lt;\/applet-desc&gt;\r\n&lt;\/jnlp&gt;\r\n\r\nThe above demo is online here <a href=\"https:\/\/jogl-demos.dev.java.net\/applettest-jnlp.html\">https:\/\/jogl-demos.dev.java.net\/applettest-jnlp.html<\/a>.\r\n\r\nIn the next part I will explain the partitioning of the new JOGL, JAR and JNLP files.\r\n\r\nNote: A bug on MacOSX is known, launching 2 JOGL applets in 2 tabs.<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>A Java Applet using JOGL may utilize 2 methods New\u00a0 JNLP Applet Applet-Launcher Standard JNLP Applets are supported starting with Java 6u14, however, if you run MacOSX or an older version of\u00a0 Java, you may need to use the Applet-Launcher.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[7,3,8],"tags":[16,44],"class_list":["post-67","post","type-post","status-publish","format-standard","hentry","category-3d-opengl","category-computer-stuff","category-jogamp","tag-java","tag-jogamp"],"_links":{"self":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/67","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/comments?post=67"}],"version-history":[{"count":1,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/67\/revisions"}],"predecessor-version":[{"id":594,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/posts\/67\/revisions\/594"}],"wp:attachment":[{"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/media?parent=67"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/categories?post=67"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jausoft.com\/blog\/wp-json\/wp\/v2\/tags?post=67"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}