当前位置: 首页 > 知识库问答 >
问题:

如何在JavaFX上为本地项目设置路径[重复]

郜谦
2023-03-14

我想制作一个本地JavaFX应用程序,但我不知道如何设置文件的路径,所以当我构建jar时,我不会有任何问题。

我已经构建了jar并试图修复尽可能多的错误,但仍有一些无法修复的错误。

下面是源文件夹的图片。

这些是我的错误

Exception in Application start method
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        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(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
        at java.lang.Thread.run(Unknown Source)
Caused by: javafx.fxml.LoadException:
file:/D:/Users/eebal/IdeaProjects/Recetario/out/artifacts/Recetario/Recetario.jar!/sample/home.fxml

        at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
        at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2848)
        at javafx.fxml.FXMLLoader.processImport(FXMLLoader.java:2692)
        at javafx.fxml.FXMLLoader.processProcessingInstruction(FXMLLoader.java:2661)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2517)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
        at sample.Main.start(Main.java:21)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
        at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
        ... 1 more
Caused by: java.lang.ClassNotFoundException: com.jfoenix.controls.JFXButton
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at javafx.fxml.FXMLLoader.loadTypeForPackage(FXMLLoader.java:2916)
        at javafx.fxml.FXMLLoader.loadType(FXMLLoader.java:2905)
        at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2846)
        ... 20 more
Exception running application sample.Main

D:\Users\eebal\IdeaProjects\Recetario\out\artifacts\Recetario>java -jar Recetario.jar
Exception in Application start method
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        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(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
        at java.lang.Thread.run(Unknown Source)
Caused by: javafx.fxml.LoadException:
file:/D:/Users/eebal/IdeaProjects/Recetario/out/artifacts/Recetario/Recetario.jar!/sample/home.fxml

        at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
        at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2848)
        at javafx.fxml.FXMLLoader.processImport(FXMLLoader.java:2692)
        at javafx.fxml.FXMLLoader.processProcessingInstruction(FXMLLoader.java:2661)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2517)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
        at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
        at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
        at sample.Main.start(Main.java:21)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
        at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
        ... 1 more
Caused by: java.lang.ClassNotFoundException: com.jfoenix.controls.JFXButton
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at javafx.fxml.FXMLLoader.loadTypeForPackage(FXMLLoader.java:2916)
        at javafx.fxml.FXMLLoader.loadType(FXMLLoader.java:2905)
        at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2846)
        ... 20 more
Exception running application sample.Main

这是Mainparent home=fxmlloader.load(getClass().getResource(“home.fxml”))处的第21行;

共有1个答案

颜永怡
2023-03-14

您的错误日志显示creasedby:java.lang.ClassNotFoundException:com.jfoenix.controls.jfxButton。这意味着无法加载fxml,因为找不到类jfxbutton。我认为jfoenix的库导入有问题,或者您忘记在FXML文件中包含JFXButton导入。

 类似资料:
  • 我用eclipse创建了一个maven项目,并用下面的命令制作了jar文件 打包 当我尝试知道我的mvn项目配置是真的还是不是这个命令 mvn exec:Java-D exec . main class = " giraph . hello world . app " 我得到这个错误: 在helloworld项目上执行目标 org.codehaus.mojo: exec-maven-plugin:

  • 我有一个springboot项目。在远程tomcat服务器webapps目录上使用WAR包。ROOT是WAR项目,它有两个文件夹,WEB-INF和META-INF。如下所示 现在出现了一个问题,我上传的文件在项目根目录'upload-dir'目录下(您可以在下图中看到upload-dir位置)。不在WAR包中,也不在远程服务器上。我应该在远程服务器上的哪里创建这个新目录? 我使用Files.cre

  • 我安装了jdk 1.8.0,并将路径更改为。bash_profile 但是java-version仍然返回旧的java版本(1.7.0) 我检查结果是= 如果我检查,那么结果是 如何将java版本更改为新版本?

  • 我尝试使用命令$ionic平台添加Android作为平台添加Android,当我尝试仿真时,它显示了这个错误,如何处理?因为我是第一次使用mac,我不知道如何在mac OS中处理它。

  • 问题内容: 如何设置路径而不必在每次重新启动计算机时都进行设置? 尝试在Ubuntu计算机上设置JAVA_HOME时,使用了以下方法: 1)从终端执行以下命令: 2)我直接编辑了文件以在其中添加路径 真正奇怪的是,如果我在上述两种方法中的一种之后使用命令进行测试,我可以看到它设置正确,但是如果重新启动,再次注销/登录或者甚至在机器上工作了一段时间之后,都不再可用设置,我必须使用以上两种方法中的任何

  • 为了在命令行上运行TestNG测试,我必须在类路径中设置TestNG。为了做到这一点,我经历了- 无法通过命令行执行TestNG套件文件