Hi !
Featured games (90)
games approved by the League of Dukes
Games in Showcase (726)
Games in Android Showcase (216)
games submitted by our members
Games in WIP (796)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  How to disable the loading of installed extensions?  (Read 2374 times)
0 Members and 1 Guest are viewing this topic.
Offline gouessej
« Posted 2014-03-17 11:55:11 »


As you may know, when you run a Java application, the JVM uses at least 3 classloaders: the bootstrap classloader, the extension classloader and the application classloader (which loads the classes in the classpath). When using JNLP in an applet or in an application, the JVM uses one more classloader. It is even more complicated when using a servlet container or a module system.

This is what I mean by "installed extensions":

I sometimes use Java3D 1.6.0 and I often use JogAmp (especially JOGL and JOAL). Some developers complain about Apple going on shipping an obsolete version of Java3D as an extension which is loaded by default before the version available in the classpath, it obviously causes some conflicts.

As far as I know, there is a property allowing to override the set of directories used to find the extensions to load, this property is called "java.ext.dirs". I've looked at the source code of OpenJDK:

Setting it to "" should solve my problem, the obsolete version of Java3D shouldn't be picked if there is no directory denoted in java.ext.dirs. However, a developer under OS X goes on complaining that it doesn't work but as he hasn't given me any information about the version of OS X and the JVM, I don't know what to do. I can try to reproduce his "bug" on a Mac but if it reproducible only with a particular version of Java and/or OS X, I won't succeed. Please can some Mac OS X users confirm whether this property is honored with OpenJDK and/or Oracle Java? As far as I know, it can be set as a JVM option in command line, in a JNLP file or just very early in the program by calling System.setProperty("java.ext.dirs", "").

Online princec

« JGO Spiffy Duke »

Medals: 904
Projects: 3
Exp: 16 years

Eh? Who? What? ... Me?

« Reply #1 - Posted 2014-03-17 12:33:24 »

What you do in this situation, is ignore them, until they give you the information you've asked for.

Cas Smiley

Offline gouessej
« Reply #2 - Posted 2014-03-19 15:23:15 »

I can do it this time but this isn't something new.

If anybody can help me with a recent Mac, let me know.

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Roquen
« Reply #3 - Posted 2014-03-19 18:10:00 »

Write your own classloader.
Offline gouessej
« Reply #4 - Posted 2014-03-19 19:29:26 »

I already tried that but then, I need several implementations, depending on which parent classloader is in use. I'm not sure I can instantiate the application classloader with the system classloader as a parent and use it as is. When using JNLP, the "lowest" classloader is a parent of the application classloader not in sun.misc.Launcher which drives this even more complicated. That's why I would be grateful if someone could confirm whether or not setting java.ext.dirs to "" works under Mac OS X 10.9.

Offline Roquen
« Reply #5 - Posted 2014-03-19 20:14:52 »

You don't have to defer to a parent.
Offline gouessej
« Reply #6 - Posted 2014-03-19 21:05:11 »

java.ext.dirs is taken into account if and only if it is set very early as a VM option or as a property in a JNLP file. If you use a "runnable" JAR, rather call Runtime.exec to run a VM with the proper parameters or use a script. Someone else tested on Mavericks. I'll update my Java3D tutorial soon.

Pages: [1]
  ignore  |  Print  
You cannot reply to this message, because it is very, very old.

Archive (280 views)
2017-04-27 17:45:51

buddyBro (472 views)
2017-04-05 03:38:00

CopyableCougar4 (921 views)
2017-03-24 15:39:42

theagentd (933 views)
2017-03-24 15:32:08

Rule (944 views)
2017-03-19 12:43:22

Rule (912 views)
2017-03-19 12:42:17

Rule (916 views)
2017-03-19 12:36:21

theagentd (952 views)
2017-03-16 05:07:07

theagentd (890 views)
2017-03-15 22:37:06

theagentd (684 views)
2017-03-15 22:32:18
List of Learning Resources
by elect
2017-03-13 14:05:44

List of Learning Resources
by elect
2017-03-13 14:04:45

SF/X Libraries
by philfrei
2017-03-02 08:45:19

SF/X Libraries
by philfrei
2017-03-02 08:44:05

SF/X Libraries
by SkyAphid
2017-03-02 06:38:56

SF/X Libraries
by SkyAphid
2017-03-02 06:38:32

SF/X Libraries
by SkyAphid
2017-03-02 06:38:05

SF/X Libraries
by SkyAphid
2017-03-02 06:37:51 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!