Aw: Re: Re: "Toolkit already initialized" error with OpenJDK 11

Tom Schindl tom.schindl at
Fri Oct 5 07:27:51 UTC 2018

So how do you then load FXCanvas? It will not be found on any classpath
unless you ship the FXCanvas class directly which as you see is a bad idea.

I'm naturally biased but I think the approach take by e(fx)clipse is the
right one as it makes sure there's ever only one instance of FXCanvas
loaded in your runtime.

There is more static stuff in FXCanvas (eg Transfer and DropTargets) who
might or might not cause problems.

BTW IIRC the SceneBuilder Eclipse integration [1] is using e(fx)clipse
to load the FXCanvas.



On 05.10.18 08:46, marcel Austenfeld wrote:
> Hello Tom,
> thanks for the answer. However I don't use e(fx)clipse to integrate
> Javafx panels in SWT and a Rich Client Platform.
> I believe that Kevin found the problem related to different classloaders
> *Gesendet:* Donnerstag, 04. Oktober 2018 um 16:44 Uhr
> *Von:* "Tom Schindl" <tom.schindl at>
> *An:* openjfx-dev at
> *Betreff:* Re: Aw: Re: "Toolkit already initialized" error with OpenJDK 11
> Hi,
> Just to make sure I understand. Do you say that other OSGi-Bundles bring
> with them their own FXCanvas?
> I've been looking at the e(fx)clipse code [1] who deals with FXCanvas,
> ... but I can't think of a situation where we create multiple classloaders.
> Tom
> [1]
> On 04.10.18 15:03, marcel Austenfeld wrote:
>> Hello Kevin,
>> I still have problems with the error:
> "java.lang.IllegalStateException: Toolkit already initialized".
>> However I found out that this error only occurs if I call SWT FXCanvas
> classes located in different Eclipse plugins.
>> I can create multiple JavaFX canvas if they are located in one Eclipse
> plugin.
>> Vice versa if I try to to open the JavaFX SceneBuilder canvas which is
> located in a seperate Eclipse plugin this error occurs again.
>> So I wonder that beginning with Java 9 the JavaFX toolkit doesn't
> recognize an already started toolkit in another Eclipse plugin (which
> was definitely the case with Java 8!).
>> Maybee this has something to do with the new module system of Java >=9?
>> Gesendet: Mittwoch, 26. September 2018 um 14:09 Uhr
>> Von: "Kevin Rushforth" <kevin.rushforth at>
>> An: "marcel Austenfeld" < at>, openjfx-dev at
>> Betreff: Re: "Toolkit already initialized" error with OpenJDK 11
>> I'm' not aware of anything that intentionally changed between FX in JDK
>> 8 and FX 11, but my guess is that the FX runtime is being shutdown after
>> your first FXCanvas exits. Try making the following call (only needed
>> one time) before creating your first FXCanvas:
>>     Platform.setImplicitExit(false);
>> -- Kevin
>> On 9/26/2018 4:22 AM, marcel Austenfeld wrote:
>>> First of all congratulation to the new release and thank you for the
> hard work on JavaFX.
>>> I have a problem with JavaFX which in my case is embedded in a Rich
> Client Platform of Eclipse.
>>> I integrated several SWT FXCanvas (some with SwingNode panels as a
> SWT_AWT replacement) into my app.
>>> This works fine in Java 8 which my current release depends on.
>>> However in Java 11 after the second panel is initialized at startup I
> get the following error:
>>> "Caused by: java.lang.IllegalStateException: Toolkit already initialized"
>>> Is there a new option available to avoid a new initialization of the
> toolkit if several FXCanvas are embedded in an application?
>>> Or do you now any changes since Java 8 which could the cause of such
> an exception?
>>> Thanks in advance for any help.
> --
> Tom Schindl, CTO
> EDV Systemhaus GmbH
> Eduard-Bodem-Gasse 5-7. A-6020 Innsbruck
> Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck

Tom Schindl, CTO EDV Systemhaus GmbH
Eduard-Bodem-Gasse 5-7. A-6020 Innsbruck
Reg. Nr. FN 222302s am Firmenbuchgericht Innsbruck

More information about the openjfx-dev mailing list