Jump to content
  • Advertisement
Sign in to follow this  

[java] Applets and JOGL

This topic is 3683 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

All, I am trying to get JOGL to work with an applet and I am exasperated. I’ll say up front for reasons I won't explain I do not want to use the JNLP Launcher. I just want to use a plain old signed applet with the normal HTML tags. I have spent many hours on this problem and have taken several routes and still haven't succeeded. Here's where I am in the process and the approach I'm taking. 1. Launch a signed applet via HTML with your standard applet tag. 2. To the best of my knowledge, because System.load and System.loadLibrary will only load a library from a local drive not over a network using a URL, I download the required library files (jogl.dll, jogl_awt.dll, jogl_cg.dll, and gluegen-rt.dll) by copying the files from the webserver to a local drive on the end user's machine. Currently I am using the java.io.tmp property as the local directory. This seems to work fine. 3. I then use System.load to load the libraries from java.io.tmp. This seems to work fine. No exceptions. 4. Steps 3 and 4 are done in AccessController doPriviedged block to satisfy the security requirements. Here's the problem. 5. When the code that actually uses the libraries is executed, it tries to reload the libraries from java.library.path. Of course the library files aren't there, because they are in java.io.tmp, and an exception is thrown. So here's my questions/comments: 1. Does anybody know why the system would try to reload the libraries when they have already been loaded? 2. It seems pretty conclusive that java.library.path cannot be changed at runtime, so that isn't an option. Correct me if I'm wrong. 3. I've tried to copy the files to java.library.path, but that is a list of directories, most which require special permision to write to. That doesn't seem to be an option. Correct me if I'm wrong. I am out of ideas on this, so any input would be greatly appreciated. I'll attach a short code snippet that shows how I'm loading the libraries. Thanks, M. Warble AccessController.doPrivileged(new PrivilegedAction() { public Object run() { try { String lib = System.getProperty("java.io.tmpdir"); copyFile("http://www.mydomain.com/" + System.mapLibraryName("jogl"), lib + System.mapLibraryName("jogl")); copyFile("http://www.mydomain.com/" + System.mapLibraryName("jogl_awt"), lib + System.mapLibraryName("jogl_awt")); copyFile("http://www.mydomain.com/" + System.mapLibraryName("jogl_cg"), lib + System.mapLibraryName("jogl_cg")); copyFile("http://www.mydomain.com/" + System.mapLibraryName("gluegen-rt"), lib + System.mapLibraryName("gluegen-rt")); System.load(lib + System.mapLibraryName("jogl")); System.load(lib + System.mapLibraryName("jogl_awt")); System.load(lib + System.mapLibraryName("gluegen-rt")); // code that uses libraries wwd = new WorldWindowGLJPanel(); ...

Share this post

Link to post
Share on other sites
Original post by INsanityDesign
I haven't really tried before but this https://jogl-demos.dev.java.net/applettest.html does not work for you?

That uses the JNLP launcher. I need to be able to do this without the JNLP launcher.

Thanks for your reply though.

Share this post

Link to post
Share on other sites
Yeah I read your post but as I cannot currently imagine a case where you would need to miss JNLP I posted that link. Have you tried the com.sun.opengl.util.JOGLAppletLauncher? Not the JNLPLauncher...

Share this post

Link to post
Share on other sites
This is how i do it and it works. (at least for me)

In applet i read the value of 'deployDir' to read resource files from server properly.

'japplet' contains my app .class files

<applet code="org.jdesktop.applet.util.JNLPAppletLauncher"
<param name="deployDir" value="http://x.x.x.x:xxxx/JApplet/">
<param name="codebase_lookup" value="false">
<param name="subapplet.classname" value="render.JApplet">
<param name="subapplet.displayname" value="JOGL Applet">
<param name="noddraw.check" value="true">
<param name="progressbar" value="true">
<param name="jnlpNumExtensions" value="1">
<param name="jnlpExtension1"

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!