Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Problem using JNLP to launch applet with Java3D dependencies

As title says currently trying to use JNLP as a means of launching an applet with Java3D dependenices for any user who may not have Jave3D installed on their system. Unfortunately getting an error to do with the 'subapplet.classname' value not being found, while the applet tries to launch..

This problem is compounded by the fact that the example supplied on the java.net website FourByFour Demo isn't working and fails with the same problem of class not found.

Java JNLP webpage with Four by Four Demo:

java.net FourByFour Demo

Have tried with both Firefox & IE browsers with no difference..

Sample of the code used on the java.net website:

<applet code="org.jdesktop.applet.util.JNLPAppletLauncher"
        width=800 height=400
        archive="http://download.java.net/media/java3d/webstart/test/j3d-examples.jar,
                 http://download.java.net/media/applet-launcher/applet-launcher.jar,
                 http://download.java.net/media/java3d/webstart/release/j3d/latest/j3dcore.jar,
                 http://download.java.net/media/java3d/webstart/release/j3d/latest/j3dutils.jar,
                 http://download.java.net/media/java3d/webstart/release/vecmath/latest/vecmath.jar,
                 http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jar,
                 http://download.java.net/media/gluegen/webstart/gluegen-rt.jar">
    <param name="codebase_lookup" value="false">
    <param name="subapplet.classname" value="org.jdesktop.j3d.examples.four_by_four.FourByFour">
    <param name="subapplet.displayname" value="Java 3D Four by Four Applet">
    <param name="jnlpNumExtensions" value="1">
    <param name="jnlpExtension1" value="http://download.java.net/media/java3d/webstart/release/java3d-latest.jnlp">
    <param name="progressbar" value="true">
    <param name="noddraw.check" value="true">
</applet>
like image 571
maelstrom Avatar asked Jan 16 '11 00:01

maelstrom


People also ask

How to launch a Java applet from a JNLP file?

You can use the applet-desc tag within the jnlp file. For example, we have converted our Java applet “SaveToWeb” contained in webnotes.jar so that instead of being launched from html, it is being launched with jnlp.

Why is my Java applet not launching properly?

Make sure your Java source files compiled correctly. If deploying using the <applet> tag, check that the path to the applet JAR file is specified accurately in the archive attribute. If launching using a JNLP file, check the path in the jar tag in the JNLP file.

Can I Run my applet with Java Web Start technology?

Your applet can run with Java Web Start technology without any recompilation of the applet. Just convert your applet HTML tags to a Java Network Launching Protocol (JNLP) file using the JNLP applet-desc element, for example:

What version of Java do I need to deploy an applet?

The applet may require a later version of the Java Runtime Environment software than the version that currently exists on the client. Check the minimumVersion parameter of the runApplet function in the applet's web page. See Deploying an Applet for details.


1 Answers

the Java 3D applet examples still use the 'org.jdesktop.applet.util.JNLPAppletLauncher'. Since JRE-Version 1.6.0_21-b07 this launcher doesn't work properly and is no longer maintained.

Following the 'The Java Tutorial : Deploying With the Applet Tag' h ttp://download-llnw.oracle.com/javase/tutorial/deployment/applet/html.html I switched to the applet-tag and a corresponding jnlp-file on my webpages. This requires JRE 6u10+. The following sample is live and can be launched from here:

Applet incl. loading of Java 3D

<applet codebase="webstart/" width="1200" height="800" align="middle">
 <param name="jnlp_href" value="propellerUniverseAPP1.0_J3D.jnlp">
</applet>

JNLP

<?xml version="1.0" encoding="UTF-8"?>
<!-- InteractiveMesh.org TestSpace PropellerUniverse 1.0 Applet J3D -->

<jnlp spec="1.0+" codebase="http://www.interactivemesh.org/testspace/webstart/" 
    href="propellerUniverseAPP1.0_J3D.jnlp">
    <information>
        <title>PropellerUniverse 1.0</title>
        <vendor>InteractiveMesh</vendor>
        <homepage href="http://www.interactivemesh.org/index.html"/>
        <description>PropellerUniverse 1.0</description>
        <!-- icon href=""/ -->
    </information>

    <security> </security>

    <update check="always" policy="always"/>

    <resources>
        <j2se version="1.6+"/>
        <extension href="http://download.java.net/media/java3d/webstart/release/java3d-latest.jnlp"/>
        <jar href="propellerUniverse1.0.jar" main="true"/>
        <jar href="jim_j3d-vrml97_v2.1.jar"/>
        <jar href="orbitbehaviorinterim2.1.jar"/>
        <property name="sun.awt.noerasebackground" value="true"/>  
        <property name="sun.awt.erasebackgroundonresize" value="true"/>  
        <property name="sun.java2d.noddraw" value="true"/>  
    </resources>
    <applet-desc  main-class="com.interactivemesh.j3d.testspace.canvas3d.PropellerUniverseJApplet"
                  width="1200" height="800" name="PropellerUniverse">
    </applet-desc>
</jnlp>

See also:

  • Java 3D Web Start Release

  • Java Web Start Guide

like image 73
InteractiveMesh Avatar answered Oct 11 '22 10:10

InteractiveMesh