flexmaster
flexmaster

Reputation: 83

Cant create new FXML File in Eclipse

When Im trying create a new FXML File in Eclipse (File -> New -> Other -> JavaFX - new FXML Document -> Next) nothing happens. It doesnt create a File. Same Problem when I try to create FXGraph or JavaFX HTML Template whatever those are. After I try to create I get this Error Message :


eclipse.buildId=4.26.0.20221201-1200
java.version=17.0.5
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE
Framework arguments:  -product org.eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product

org.eclipse.ui
Error
Sun Dec 11 06:12:31 CET 2022
Unhandled event loop exception

java.lang.NoClassDefFoundError: org/eclipse/jface/databinding/swt/WidgetProperties
    at org.eclipse.fx.ide.ui.wizards.AbstractJDTElementPage.createControl(AbstractJDTElementPage.java:109)
    at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:178)
    at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744)
    at org.eclipse.jface.wizard.WizardDialog.setWizard(WizardDialog.java:1182)
    at org.eclipse.jface.wizard.WizardDialog.updateForPage(WizardDialog.java:1235)
    at org.eclipse.jface.wizard.WizardDialog.lambda$3(WizardDialog.java:1223)
    at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:74)
    at org.eclipse.jface.wizard.WizardDialog.showPage(WizardDialog.java:1223)
    at org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:918)
    at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:469)
    at org.eclipse.jface.dialogs.Dialog.lambda$0(Dialog.java:619)
    at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4256)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4054)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3642)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
    at org.eclipse.jface.window.Window.open(Window.java:799)
    at org.eclipse.ui.internal.handlers.WizardHandler$New.executeHandler(WizardHandler.java:263)
    at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:283)
    at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:283)
    at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:97)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:317)
    at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:251)
    at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:173)
    at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:156)
    at org.eclipse.core.commands.Command.executeWithChecks(Command.java:488)
    at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:485)
    at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:213)
    at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:389)
    at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:142)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:580)
    at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:414)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4256)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4054)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3642)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
    at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
    at org.eclipse.equinox.launcher.Main.main(Main.java:1440)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jface.databinding.swt.WidgetProperties cannot be found by org.eclipse.fx.ide.ui_3.8.0.202204150904
    ... 67 more

I tried to reinstall JavaFX and SceneBuilder but it changed nothing. Reinstalling Eclipse Software also wasnt helping.

Upvotes: 8

Views: 25650

Answers (7)

Francis Fajardo
Francis Fajardo

Reputation: 322

This issue has been fixed with e(fx)clipse 3.10.0 (see commit 9a01848). For some reason, the version available on the Eclipse Marketplace is out of date by at least two versions already, as of writing. I'd also rather not downgrade my current version of Eclipse just to make this work.

You can get the latest version by using the nightly software site instead:

  • Go to Help > Install New Software
  • Click the Add... button beside Manage....
  • A dialog titled Add Repository will appear, asking for a name and location.
    • For the name field, you can insert something like e(fx)clipse nightly.
    • For the location field, insert https://download.eclipse.org/efxclipse/updates-nightly/site/
    • Click Add.
  • Once done, the following list should appear: Install New Software
  • Check all the items and click Next.
  • The next window will show you a list of items to be installed, just click Finish and wait for it to complete the installation.

Upvotes: 16

Chrishan Kankanamge
Chrishan Kankanamge

Reputation: 11

Try Creating the FXML file manually by New > File Enter the file name with the extension .fxml

After that set up scene builder path by Window > Preferences > JavaFX Browse and select SceneBuilder.exe to Scenebuilder executable Apply and close

Finally Right click the .fxml file that we have created manually and Click open with SceneBuilder

Upvotes: 0

Hello Hell
Hello Hell

Reputation: 1

This problem appears because the newest version of Eclipse doesn't comes with "JFace Data Binder Library" which is necessary for the FXML files, which is also not available on the Eclipse Marketplace.

So I suggest you to download the 2021-09.(4.21) version which you can find over here https://www.eclipse.org/downloads/packages/

Download this version of Eclipse and that's all you will be able to create your FXML file. Enjoy!

Upvotes: 0

4monkeycircus
4monkeycircus

Reputation: 21

The solution I found to get SceneBuilder to work was:

  • create a generic file but name it with a .fxml
  • go to Window->Preferences->JavaFX and in the SceneBuilder executable box paste the path to the scenebuilder executable file on your computer
  • right click on the newly created .fxml file->open with scenebuilder

this was in version 2022-12

Upvotes: 2

Excelsiur
Excelsiur

Reputation: 41

I found a workaround to this problem.

  1. Create a new JavaFX Project Eclipse Project Creation Wizard Selection Screen
  2. Rename the FXMLDocument to something unique JavaFX Project Navigator Display
  3. Right-click and copy the .FXML file from the bogus project you just created
  4. Right-click in your real project and paste the .FXML file into the actual project New .FXML file is in the original JavaFX Project
  5. Delete the bogus JavaFX Project to clean up
  6. Nod sagely and pat yourself on the back

Upvotes: 3

joaco1493
joaco1493

Reputation: 31

I had the same problem, it was because I was using eclipse 12-2022. Just downgrade it to eclispe 09-2022.

Upvotes: 2

nitind
nitind

Reputation: 20003

It looks like e(fx)clipse hasn't been updated for 2022-12, which removed some DataBinding APIs.

You can open an issue at https://github.com/eclipse-efx/efxclipse-eclipse/issues, but if you can work up a pull request to fix it, that'll probably move things along far more quickly.

Upvotes: 5

Related Questions