Deloying the J3D extensions

I’m tryng to use Java 3D in an applet.and have it load w/o users needing a manual install. I Referenced: http://java.sun.com/j2se/1.5.0/docs/guide/plugin/developer_guide/extensions.html
I guess I don’t understand how to do it.

I tried using a manifest file in my programs unsigned JAR, but it says it can’t find my jar.
My error message:

[quote]network: Cache entry not found [url: http://<myurl>/3dtest/Seat2/jar.class, version: null]
network: Connecting http:///3dtest/Seat2/jar.class with proxy=DIRECT
network: Connecting http:///3dtest/Seat2/jar.class with cookie “lang=english”
network: Cache entry not found [url: http://<myurl>/3dtest/Seat2/jar.class, version: null]
network: Connecting http:///3dtest/Seat2/jar.class with proxy=DIRECT
network: Connecting http:///3dtest/Seat2/jar.class with cookie “lang=english”
load: class Seat2.jar not found.
java.lang.ClassNotFoundException: Seat2.jar
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed.
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
… 10 more
basic: Exception: java.lang.ClassNotFoundException: Seat2.jar
java.lang.ClassNotFoundException: Seat2.jar
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed.
at sun.applet.AppletClassLoader.getBytes(Unknown Source)
at sun.applet.AppletClassLoader.access$100(Unknown Source)
at sun.applet.AppletClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
… 10 more
[/quote]
My manifest file:

[quote]Manifest-Version: 1.0
Extension-List: j3dcore
j3dcore-Extension-Name: javax.media.j3d
j3dcore-Implementation-Vendor-Id: com.sun
j3dcore-Implementation-Version: 1.5.0
j3dcore-Implementation-Title: Java 3D Core Runtime Environment
j3dcore-Specification-Title: Java 3D API Specification
j3dcore-Specification-Version: 1.5
j3dcore-Specification-Vendor: Sun Microsystems, Inc.
j3dcore-Implementation-URL: http:///3dtest/loader_signed.jar
[/quote]
I tried j3dcore.jar instead of loader_signed.jar, but it still can’t find my Jar

loader_signed.jar is from this PDF and site and contains all the j3d jars and dlls plus a loader.class
http://atlas.dsv.su.se/~pierre/a/papers/nativelibs.pdf
http://www.tranexp.com:2000/InterTran?type=url&url=http%3A%2F%2Fpeople.dsv.su.se%2F~pierre%2Fos%2Fnativelibs%2F&text=&from=swe&to=eng (Swedish translation)

my html file is basic

[quote]

[/quote]
Any ideas or easier ways?

I found this but it says experimental: https://java3d.dev.java.net/applet-launcher.html

Also, do all 3 J3D JARs work in Apples OSs too?

I would simply include the libjar in the main jar file without changing the manifest. Of course URL is no more needed. ::slight_smile:

So, you mean:
jar cvf myapp.jar mymain.class loader_signed.jar

Thats 3 nested JARs. That makes an bare manifest file right?

and *-Implementation-URL can be dropped in a general manifest?

That be the solution. Note that for a JAI extension it does require a complete Manifest file grouping the ones from JAI extensions otherwise you get a classNotFound exception something caused by a vendor==null condition. :’(

Still didn’t work. Keep getting can’t find Seat2.jar.

Why is it looking for “Seat2/jar.class”???

network: Connecting http://<myurl>/3dtest/Seat2/jar.class with proxy=DIRECT
network: Connecting http://<myurl>/3dtest/Seat2/jar.class with cookie "lang=english"

you may check for your pathnames. I see a slash ‘/’…

“The JNLPAppletLauncher is a general-purpose, JNLP-based applet-launcher class for deploying applets that use extension libraries, such as Java 3D, JOGL, and JOAL, containing native code.”

Have a look at Java 3D forum: http://forums.java.net/jive/thread.jspa?threadID=27661&tstart=30

August

I am testing the JNLPAppletLauncher and I keep getting this error on my test machine:

“Fail to create reference rasterizer 3d device - d3derr_notavailable”

Old P2 Dell
128MB RAM
NVidia Riva TNT2 32MB graphics
NV4 V5.0 drivers

Any idea what is wrong?

According to Java 3D 1.5.1 release notes for Windows the (default) OpenGL renderer requires OpenGL 1.3 (or later) and the (optional) DirectX renderer requires DirectX 9.0 (or later): https://j3d-core.dev.java.net/j3d1_5_1/RELEASE-NOTES.html.

If your system fulfills all requirements please file your error message to the Java 3D forum thread (the Java 3D Team will be back mid July).

August

Java 3D JNLPAppletLauncher with Java 3D 1.5.1 is now available.

Web page with examples and code samples: https://java3d.dev.java.net/applets/.
Applet-launcher project home page: https://applet-launcher.dev.java.net/.

August