简体   繁体   English

似乎无法在Eclipse中运行JavaFX项目

[英]Can't seem to run JavaFX project in Eclipse

I'm on Ubuntu 14.04 64-bit. 我使用的是Ubuntu 14.04 64位。 I installed Oracle-8 for Java and downloaded the e(fx)clipse bundle from http://efxclipse.bestsolution.at/ . 我安装了Java Java-8,并从http://efxclipse.bestsolution.at/下载了e(fx)clipse软件包。

However, now I'm running into this error message: 但是,现在我遇到了以下错误消息:

Exception in Application constructor
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)

Caused by: java.lang.RuntimeException: Unable to construct Application instance: class ui.project.Main
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:907)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$156(LauncherImpl.java:182)
    at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:819)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176(PlatformImpl.java:326)
    at com.sun.javafx.application.PlatformImpl.lambda$null$174(PlatformImpl.java:295)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(PlatformImpl.java:294)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)
    at com.sun.glass.ui.gtk.GtkApplication.lambda$null$50(GtkApplication.java:139)
    ... 1 more

Caused by: java.lang.NoClassDefFoundError: com/sun/javafx/Utils
    at org.controlsfx.tools.Platform.getCurrentPlatform(Platform.java:65)
    at org.controlsfx.tools.Platform.<clinit>(Platform.java:41)
    at org.controlsfx.dialog.HeavyweightDialog.<clinit>(HeavyweightDialog.java:72)
    at org.controlsfx.dialog.DialogFactory.createDialog(DialogFactory.java:58)
    at org.controlsfx.dialog.Dialog.<init>(Dialog.java:295)
    at org.controlsfx.dialog.Dialogs.buildDialog(Dialogs.java:1086)
    at org.controlsfx.dialog.Dialogs.showCommandLinks(Dialogs.java:692)
    at ui.project.Main.welcomeWindow(Main.java:175)
    at ui.project.Main.<init>(Main.java:64)
    ... 13 more

Caused by: java.lang.ClassNotFoundException: com.sun.javafx.Utils
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 22 more
Exception running application ui.project.Main

Main 64 calls method welcomeWindow in line 175 which includes this line: 在第175行中,主要的64个调用方法welcomeWindow包括以下行:

Action response = Dialogs.create()
            .title("Welcome to the Dolphin UI")
            .masthead(null)
            .message("Please select an option to proceed.")
            .showCommandLinks(links.get(3), links);

The problem is that the class com.sun.javafx.Utils was moved to com.sun.javafx.util.Utils package in update 60 of Java 8. 问题在于Java 8更新60中将类com.sun.javafx.Utils移到了com.sun.javafx.util.Utils包中。

I see that you use ControlsFX in your code. 我看到您在代码中使用了ControlsFX。 Then, take a new version of ControlsFX solve this problem. 然后,采用新版本的ControlsFX解决此问题。

More info: https://bitbucket.org/controlsfx/controlsfx/issues/526/comsunjavafxutils-changes-to 更多信息: https : //bitbucket.org/controlsfx/controlsfx/issues/526/comsunjavafxutils-changes-to

After spending roughly 8 hours on this, using three different operating systems (Ubuntu 32, 64 and Windows 8.1), the issue was with Java. 使用三个不同的操作系统(Ubuntu 32、64和Windows 8.1)在此上花费了大约8个小时后,问题出在Java上。 Apparently, any version after 8u40 will not work with this. 显然,8u40之后的任何版本均不适用于此版本。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM